Index: runtime/vm/flow_graph_optimizer.cc |
diff --git a/runtime/vm/flow_graph_optimizer.cc b/runtime/vm/flow_graph_optimizer.cc |
index a02a048f50c3c75d750092c4c44fcd1c185e0c58..8072c6abd77b8f58b29637caaa3033bc3fd7f1b4 100644 |
--- a/runtime/vm/flow_graph_optimizer.cc |
+++ b/runtime/vm/flow_graph_optimizer.cc |
@@ -527,6 +527,9 @@ void FlowGraphOptimizer::VisitStoreIndexed(StoreIndexedComp* comp, |
} |
+#if 0 |
+// TODO(vegorov): land a separate CL to fix the fusion. Now it should remove |
+// instruction from the graph to avoid confusing register allocator. |
static void TryFuseComparisonWithBranch(BindInstr* instr, |
ComparisonComp* comp) { |
Instruction* next_instr = instr->next(); |
@@ -558,6 +561,7 @@ static void TryFuseComparisonWithBranch(BindInstr* instr, |
} |
} |
} |
+#endif |
void FlowGraphOptimizer::VisitRelationalOp(RelationalOpComp* comp, |
@@ -581,13 +585,17 @@ void FlowGraphOptimizer::VisitRelationalOp(RelationalOpComp* comp, |
// For smi and double comparisons if the next instruction is a conditional |
// branch that uses the value of this comparison mark them as fused together |
// to avoid materializing a boolean value. |
+#if 0 |
srdjan
2012/07/11 17:22:32
Enable once synced with branch fusion fix
|
TryFuseComparisonWithBranch(instr, comp); |
+#endif |
} |
void FlowGraphOptimizer::VisitStrictCompare(StrictCompareComp* comp, |
BindInstr* instr) { |
+#if 0 |
TryFuseComparisonWithBranch(instr, comp); |
+#endif |
} |
@@ -600,7 +608,9 @@ void FlowGraphOptimizer::VisitEqualityCompare(EqualityCompareComp* comp, |
comp->set_ic_data(&unary_checks); |
} |
+#if 0 |
TryFuseComparisonWithBranch(instr, comp); |
+#endif |
} |