• sigurds's avatar
    [turbofan] Deopt support for escape analysis · 3b473d7a
    sigurds authored
    Deopt support is added on two levels. On the IR level,
    a new ObjectState node is added, which represenents an
    object to be materialized. ObjectState nodes appear as
    inputs of FrameState and StateValues nodes. On the
    instruction select/code-generation level, the
    FrameStateDescriptor class handles the nesting
    introduced by ObjectState, and ensures that deopt code
    with CAPTURED_OBJECT/DUPLICATED_OBJECT entries are
    generated similarly to what crankshaft's escape
    analysis does.
    
    Two unittests test correctness of the IR level implementation.
    
    Correctness for instruction selection / code generation
    is tested by mjsunit tests.
    
    R=jarin@chromium.org,mstarzinger@chromium.org
    BUG=v8:4586
    LOG=n
    
    Review URL: https://codereview.chromium.org/1485183002
    
    Cr-Commit-Position: refs/heads/master@{#33115}
    3b473d7a
Name
Last commit
Last update
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
x64 Loading commit data...
branch-elimination-unittest.cc Loading commit data...
change-lowering-unittest.cc Loading commit data...
coalesced-live-ranges-unittest.cc Loading commit data...
common-operator-reducer-unittest.cc Loading commit data...
common-operator-unittest.cc Loading commit data...
compiler-test-utils.h Loading commit data...
control-equivalence-unittest.cc Loading commit data...
control-flow-optimizer-unittest.cc Loading commit data...
dead-code-elimination-unittest.cc Loading commit data...
diamond-unittest.cc Loading commit data...
escape-analysis-unittest.cc Loading commit data...
graph-reducer-unittest.cc Loading commit data...
graph-reducer-unittest.h Loading commit data...
graph-trimmer-unittest.cc Loading commit data...
graph-unittest.cc Loading commit data...
graph-unittest.h Loading commit data...
instruction-selector-unittest.cc Loading commit data...
instruction-selector-unittest.h Loading commit data...
instruction-sequence-unittest.cc Loading commit data...
instruction-sequence-unittest.h Loading commit data...
interpreter-assembler-unittest.cc Loading commit data...
interpreter-assembler-unittest.h Loading commit data...
js-builtin-reducer-unittest.cc Loading commit data...
js-context-relaxation-unittest.cc Loading commit data...
js-intrinsic-lowering-unittest.cc Loading commit data...
js-operator-unittest.cc Loading commit data...
js-type-feedback-unittest.cc Loading commit data...
js-typed-lowering-unittest.cc Loading commit data...
linkage-tail-call-unittest.cc Loading commit data...
live-range-builder.h Loading commit data...
live-range-unittest.cc Loading commit data...
liveness-analyzer-unittest.cc Loading commit data...
load-elimination-unittest.cc Loading commit data...
loop-peeling-unittest.cc Loading commit data...
machine-operator-reducer-unittest.cc Loading commit data...
machine-operator-unittest.cc Loading commit data...
move-optimizer-unittest.cc Loading commit data...
node-cache-unittest.cc Loading commit data...
node-matchers-unittest.cc Loading commit data...
node-properties-unittest.cc Loading commit data...
node-test-utils.cc Loading commit data...
node-test-utils.h Loading commit data...
node-unittest.cc Loading commit data...
opcodes-unittest.cc Loading commit data...
register-allocator-unittest.cc Loading commit data...
schedule-unittest.cc Loading commit data...
scheduler-unittest.cc Loading commit data...
select-lowering-unittest.cc Loading commit data...
simplified-operator-reducer-unittest.cc Loading commit data...
simplified-operator-unittest.cc Loading commit data...
state-values-utils-unittest.cc Loading commit data...
tail-call-optimization-unittest.cc Loading commit data...
typer-unittest.cc Loading commit data...
value-numbering-reducer-unittest.cc Loading commit data...
zone-pool-unittest.cc Loading commit data...