| Index: runtime/vm/compiler.cc
|
| diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc
|
| index 731699811a6446281dbc04293786c9b702ef7ae5..5530e06b5a477e83296899893239ace29bba7d8a 100644
|
| --- a/runtime/vm/compiler.cc
|
| +++ b/runtime/vm/compiler.cc
|
| @@ -604,10 +604,13 @@ static bool CompileParsedFunctionHelper(CompilationPipeline* pipeline,
|
| if (FLAG_common_subexpression_elimination) {
|
| if (DominatorBasedCSE::Optimize(flow_graph)) {
|
| DEBUG_ASSERT(flow_graph->VerifyUseLists());
|
| + optimizer.Canonicalize();
|
| // Do another round of CSE to take secondary effects into account:
|
| // e.g. when eliminating dependent loads (a.x[0] + a.x[0])
|
| // TODO(fschneider): Change to a one-pass optimization pass.
|
| - DominatorBasedCSE::Optimize(flow_graph);
|
| + if (DominatorBasedCSE::Optimize(flow_graph)) {
|
| + optimizer.Canonicalize();
|
| + }
|
| DEBUG_ASSERT(flow_graph->VerifyUseLists());
|
| }
|
| }
|
|
|