• 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
..
c-signature.h Loading commit data...
call-tester.h Loading commit data...
codegen-tester.cc Loading commit data...
codegen-tester.h Loading commit data...
function-tester.h Loading commit data...
graph-builder-tester.cc Loading commit data...
graph-builder-tester.h Loading commit data...
graph-tester.h Loading commit data...
instruction-selector-tester.h Loading commit data...
simplified-graph-builder.cc Loading commit data...
simplified-graph-builder.h Loading commit data...
test-basic-block-profiler.cc Loading commit data...
test-branch-combine.cc Loading commit data...
test-changes-lowering.cc Loading commit data...
test-codegen-deopt.cc Loading commit data...
test-gap-resolver.cc Loading commit data...
test-graph-reducer.cc Loading commit data...
test-instruction.cc Loading commit data...
test-js-constant-cache.cc Loading commit data...
test-js-context-specialization.cc Loading commit data...
test-js-typed-lowering.cc Loading commit data...
test-linkage.cc Loading commit data...
test-machine-operator-reducer.cc Loading commit data...
test-node-algorithm.cc Loading commit data...
test-node-cache.cc Loading commit data...
test-node.cc Loading commit data...
test-operator.cc Loading commit data...
test-phi-reducer.cc Loading commit data...
test-pipeline.cc Loading commit data...
test-representation-change.cc Loading commit data...
test-run-deopt.cc Loading commit data...
test-run-inlining.cc Loading commit data...
test-run-intrinsics.cc Loading commit data...
test-run-jsbranches.cc Loading commit data...
test-run-jscalls.cc Loading commit data...
test-run-jsexceptions.cc Loading commit data...
test-run-jsops.cc Loading commit data...
test-run-machops.cc Loading commit data...
test-run-properties.cc Loading commit data...
test-run-stackcheck.cc Loading commit data...
test-run-variables.cc Loading commit data...
test-schedule.cc Loading commit data...
test-scheduler.cc Loading commit data...
test-simplified-lowering.cc Loading commit data...
value-helper.h Loading commit data...