Make special RPO computation iterative during scheduling.
authormstarzinger@chromium.org <mstarzinger@chromium.org>
Wed, 5 Nov 2014 10:10:28 +0000 (10:10 +0000)
committermstarzinger@chromium.org <mstarzinger@chromium.org>
Wed, 5 Nov 2014 10:10:54 +0000 (10:10 +0000)
commitb0aa81f30d3baeafc408a65010def8ebd05d07d7
treead31c96dff6fabb1088a72beb9adc63ec4a2ab74
parent33dde8d92cc3fa7b73c493c2898460d0d879077c
Make special RPO computation iterative during scheduling.

This contains the following changes squashed together:
- Switch BasicBlock::loop_end to be a basic block instead of an RPO.
- Switch ScheduleLate to use dominator depth instead of RPO.
- Switch ScheduleEarly to use dominator depth instead of RPO.
- Push out absolute RPO ordering everywhere else in the scheduler.
- Keep linked list of blocks in RPO order while scheduling.
- Switch from RPO number to depth for dominator calculation.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25138}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/compiler/instruction.cc
src/compiler/schedule.cc
src/compiler/schedule.h
src/compiler/scheduler.cc
src/compiler/scheduler.h
test/cctest/compiler/test-instruction.cc
test/cctest/compiler/test-scheduler.cc
test/unittests/compiler/register-allocator-unittest.cc