Revision: 25141
Author: [email protected]
Date: Wed Nov 5 10:43:42 2014 UTC
Log: [turbofan] Propagate "deferredness" to dominated basic blocks.
TEST=cctest/test-scheduler
[email protected]
Review URL: https://codereview.chromium.org/686273005
https://code.google.com/p/v8/source/detail?r=25141
Modified:
/branches/bleeding_edge/src/compiler/scheduler.cc
/branches/bleeding_edge/test/cctest/compiler/test-scheduler.cc
=======================================
--- /branches/bleeding_edge/src/compiler/scheduler.cc Wed Nov 5 10:10:28
2014 UTC
+++ /branches/bleeding_edge/src/compiler/scheduler.cc Wed Nov 5 10:43:42
2014 UTC
@@ -415,8 +415,6 @@
IrOpcode::kIfFalse);
// Consider branch hints.
- // TODO(turbofan): Propagate the deferred flag to all blocks dominated
by
- // this IfTrue/IfFalse later.
switch (BranchHintOf(branch->op())) {
case BranchHint::kNone:
break;
@@ -1061,6 +1059,8 @@
}
current->set_dominator(dominator);
current->set_dominator_depth(dominator->dominator_depth() + 1);
+ // Propagate "deferredness" of the dominator.
+ if (dominator->deferred()) current->set_deferred(true);
Trace("Block B%d's idom is B%d, depth = %d\n", current->id().ToInt(),
dominator->id().ToInt(), current->dominator_depth());
}
=======================================
--- /branches/bleeding_edge/test/cctest/compiler/test-scheduler.cc Wed Nov
5 10:10:28 2014 UTC
+++ /branches/bleeding_edge/test/cctest/compiler/test-scheduler.cc Wed Nov
5 10:43:42 2014 UTC
@@ -34,6 +34,17 @@
CHECK_EQ(NULL, order->at(i)->loop_header());
}
}
+ int number = 0;
+ for (auto const block : *order) {
+ if (block->deferred()) continue;
+ CHECK_EQ(number, block->ao_number());
+ ++number;
+ }
+ for (auto const block : *order) {
+ if (!block->deferred()) continue;
+ CHECK_EQ(number, block->ao_number());
+ ++number;
+ }
}
@@ -155,6 +166,7 @@
BasicBlock* last = schedule.start();
for (int j = 0; j < i; j++) {
BasicBlock* block = schedule.NewBasicBlock();
+ block->set_deferred(i & 1);
schedule.AddGoto(last, block);
last = block;
}
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.