Fix scheduler to correctly schedule nested diamonds.
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
Showing
Please
register
or
sign in
to comment