• sigurds@chromium.org's avatar
    Fix scheduler to correctly schedule nested diamonds. · 0f5949d6
    sigurds@chromium.org authored
    The scheduler rewires control based on the last *control*
    node that appears in the schedule of a block. This is not
    sufficient to account for dependencies.
    
    This patch adds additional dependencies to floating control
    nodes. Given a floating control node A, every non-control
    dependency of every node B that depends on A is introduces
    as an additional dependency of A.
    
    This allows the scheduler to correctly schedule two
    diamonds A, B, if their only correct schedule is to
    schedule B into the ifTrue successor in A.
    
    TEST=cctest/test-scheduler/NestedFloatingDiamonds
    R=mstarzinger@chromium.org, titzer@chromium.org
    
    Review URL: https://codereview.chromium.org/602083003
    
    git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    0f5949d6
Name
Last commit
Last update
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
mips Loading commit data...
x64 Loading commit data...
access-builder.cc Loading commit data...
access-builder.h Loading commit data...
ast-graph-builder.cc Loading commit data...
ast-graph-builder.h Loading commit data...
basic-block-instrumentor.cc Loading commit data...
basic-block-instrumentor.h Loading commit data...
change-lowering.cc Loading commit data...
change-lowering.h Loading commit data...
code-generator-impl.h Loading commit data...
code-generator.cc Loading commit data...
code-generator.h Loading commit data...
common-node-cache.h Loading commit data...
common-operator.cc Loading commit data...
common-operator.h Loading commit data...
control-builders.cc Loading commit data...
control-builders.h Loading commit data...
frame.h Loading commit data...
gap-resolver.cc Loading commit data...
gap-resolver.h Loading commit data...
generic-algorithm-inl.h Loading commit data...
generic-algorithm.h Loading commit data...
generic-graph.h Loading commit data...
generic-node-inl.h Loading commit data...
generic-node.h Loading commit data...
graph-builder.cc Loading commit data...
graph-builder.h Loading commit data...
graph-inl.h Loading commit data...
graph-reducer.cc Loading commit data...
graph-reducer.h Loading commit data...
graph-replay.cc Loading commit data...
graph-replay.h Loading commit data...
graph-visualizer.cc Loading commit data...
graph-visualizer.h Loading commit data...
graph.cc Loading commit data...
graph.h Loading commit data...
instruction-codes.h Loading commit data...
instruction-selector-impl.h Loading commit data...
instruction-selector.cc Loading commit data...
instruction-selector.h Loading commit data...
instruction.cc Loading commit data...
instruction.h Loading commit data...
ir-operations.txt Loading commit data...
js-builtin-reducer.cc Loading commit data...
js-builtin-reducer.h Loading commit data...
js-context-specialization.cc Loading commit data...
js-context-specialization.h Loading commit data...
js-generic-lowering.cc Loading commit data...
js-generic-lowering.h Loading commit data...
js-graph.cc Loading commit data...
js-graph.h Loading commit data...
js-inlining.cc Loading commit data...
js-inlining.h Loading commit data...
js-operator.cc Loading commit data...
js-operator.h Loading commit data...
js-typed-lowering.cc Loading commit data...
js-typed-lowering.h Loading commit data...
linkage-impl.h Loading commit data...
linkage.cc Loading commit data...
linkage.h Loading commit data...
machine-operator-reducer.cc Loading commit data...
machine-operator-reducer.h Loading commit data...
machine-operator.cc Loading commit data...
machine-operator.h Loading commit data...
machine-type.cc Loading commit data...
machine-type.h Loading commit data...
node-aux-data-inl.h Loading commit data...
node-aux-data.h Loading commit data...
node-cache.cc Loading commit data...
node-cache.h Loading commit data...
node-matchers.cc Loading commit data...
node-matchers.h Loading commit data...
node-properties-inl.h Loading commit data...
node-properties.h Loading commit data...
node.cc Loading commit data...
node.h Loading commit data...
opcodes.h Loading commit data...
operator-properties-inl.h Loading commit data...
operator-properties.h Loading commit data...
operator.cc Loading commit data...
operator.h Loading commit data...
phi-reducer.h Loading commit data...
pipeline.cc Loading commit data...
pipeline.h Loading commit data...
raw-machine-assembler.cc Loading commit data...
raw-machine-assembler.h Loading commit data...
register-allocator.cc Loading commit data...
register-allocator.h Loading commit data...
representation-change.h Loading commit data...
schedule.cc Loading commit data...
schedule.h Loading commit data...
scheduler.cc Loading commit data...
scheduler.h Loading commit data...
simplified-lowering.cc Loading commit data...
simplified-lowering.h Loading commit data...
simplified-operator-reducer.cc Loading commit data...
simplified-operator-reducer.h Loading commit data...
simplified-operator.cc Loading commit data...
simplified-operator.h Loading commit data...
source-position.cc Loading commit data...
source-position.h Loading commit data...
typer.cc Loading commit data...
typer.h Loading commit data...
value-numbering-reducer.cc Loading commit data...
value-numbering-reducer.h Loading commit data...
verifier.cc Loading commit data...
verifier.h Loading commit data...