Schedule floating control.
authortitzer@chromium.org <titzer@chromium.org>
Tue, 26 Aug 2014 15:25:07 +0000 (15:25 +0000)
committertitzer@chromium.org <titzer@chromium.org>
Tue, 26 Aug 2014 15:25:07 +0000 (15:25 +0000)
commit6bbf6c5cb03ec2b8d9a182a47bb650b91b2abc2f
treec988d724f4f4abdab7d8f22e504da31753294df9
parentecca77ce76acafdcc9ad0d5378ea3438191d3f73
Schedule floating control.

This CL makes several changes to the scheduling algorithm to handle control
flow that is not connected to End. Such control nodes constitute "floating
control islands" that must be linearized by the schedule. This is done
by considering such nodes to be schedulable, and then editing the control
dependencies after a first pass of scheduling. Then a subsequent pass of
scheduling will place all nodes correctly into the fully connected graph.

R=mstarzinger@chromium.org, rossberg@chromium.org
BUG=

Review URL: https://codereview.chromium.org/499363002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
.gitignore
src/compiler/node-properties.h
src/compiler/pipeline.cc
src/compiler/schedule.h
src/compiler/scheduler.cc
src/compiler/scheduler.h
src/compiler/verifier.cc
test/cctest/compiler/test-scheduler.cc