Index: runtime/vm/compiler.cc |
diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc |
index f331f69ff80fe449eb957028b77445a263f69668..64f05064be8ea17b4c140b7c5e0ce68a3dff2897 100644 |
--- a/runtime/vm/compiler.cc |
+++ b/runtime/vm/compiler.cc |
@@ -179,10 +179,6 @@ static bool CompileParsedFunctionHelper(const ParsedFunction& parsed_function, |
} |
if (optimized) { |
- // TODO(vegorov): we need to compute uses for the |
- // purposes of unboxing. Move unboxing to a later |
- // stage. |
- // Compute the use lists. |
flow_graph->ComputeUseLists(); |
FlowGraphOptimizer optimizer(flow_graph); |
@@ -209,7 +205,12 @@ static bool CompileParsedFunctionHelper(const ParsedFunction& parsed_function, |
// Do optimizations that depend on the propagated type information. |
optimizer.OptimizeComputations(); |
+ // Unbox doubles. |
+ flow_graph->ComputeUseLists(); |
+ optimizer.SelectRepresentations(); |
+ |
if (FLAG_cse) { |
+ flow_graph->ComputeUseLists(); |
DominatorBasedCSE::Optimize(flow_graph->graph_entry()); |
} |