| Index: runtime/vm/compiler.cc
|
| diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc
|
| index 39ad83a3fc11a68dbf2eb78d50332da591c68784..a0f1af74d99c0443e5a2587cfb35b43d225198ce 100644
|
| --- a/runtime/vm/compiler.cc
|
| +++ b/runtime/vm/compiler.cc
|
| @@ -46,6 +46,7 @@ DEFINE_FLAG(int, deoptimization_counter_threshold, 5,
|
| "How many times we allow deoptimization before we disallow"
|
| " certain optimizations");
|
| DEFINE_FLAG(bool, use_inlining, true, "Enable call-site inlining");
|
| +DEFINE_FLAG(bool, range_analysis, false, "Enable range analysis");
|
| DECLARE_FLAG(bool, print_flow_graph);
|
|
|
|
|
| @@ -216,11 +217,13 @@ static bool CompileParsedFunctionHelper(const ParsedFunction& parsed_function,
|
| LICM::Optimize(flow_graph);
|
| }
|
|
|
| - // We have to perform range analysis after LICM because it
|
| - // optimistically moves CheckSmi through phis into loop preheaders
|
| - // making some phis smi.
|
| - flow_graph->ComputeUseLists();
|
| - optimizer.InferSmiRanges();
|
| + if (FLAG_range_analysis) {
|
| + // We have to perform range analysis after LICM because it
|
| + // optimistically moves CheckSmi through phis into loop preheaders
|
| + // making some phis smi.
|
| + flow_graph->ComputeUseLists();
|
| + optimizer.InferSmiRanges();
|
| + }
|
|
|
| // Perform register allocation on the SSA graph.
|
| FlowGraphAllocator allocator(*flow_graph);
|
|
|