Index: src/IceTargetLoweringX86BaseImpl.h |
diff --git a/src/IceTargetLoweringX86BaseImpl.h b/src/IceTargetLoweringX86BaseImpl.h |
index 77048b089c1a4c9934568f8dd973429138e36f9c..2bc2386bf82890dbe8d15243b59d677b7eb4714a 100644 |
--- a/src/IceTargetLoweringX86BaseImpl.h |
+++ b/src/IceTargetLoweringX86BaseImpl.h |
@@ -406,6 +406,12 @@ template <class Machine> void TargetX86Base<Machine>::translateO2() { |
Func->contractEmptyNodes(); |
Func->reorderNodes(); |
+ // Shuffle basic block order if -reorder-basic-blocks is enabled. |
Jim Stichnoth
2015/07/30 16:30:51
Call Func->shuffleNodes() unconditionally, and che
qining
2015/07/30 20:25:55
Done. Done the same with nop insertion.
|
+ if (Ctx->getFlags().shouldReorderBasicBlocks()) { |
+ Func->shuffleNodes(); |
+ Func->dump("After basic block shuffling"); |
+ } |
+ |
// Branch optimization. This needs to be done just before code emission. In |
// particular, no transformations that insert or reorder CfgNodes should be |
// done after branch optimization. We go ahead and do it before nop insertion |
@@ -449,6 +455,12 @@ template <class Machine> void TargetX86Base<Machine>::translateOm1() { |
return; |
Func->dump("After stack frame mapping"); |
+ // Shuffle basic block order if -reorder-basic-blocks is enabled. |
+ if (Ctx->getFlags().shouldReorderBasicBlocks()) { |
+ Func->shuffleNodes(); |
+ Func->dump("After basic block shuffling"); |
+ } |
+ |
// Nop insertion |
if (Ctx->getFlags().shouldDoNopInsertion()) { |
Func->doNopInsertion(); |