| Index: runtime/vm/compiler.cc
|
| diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc
|
| index ae0db89fb6bc98591a97edfa9fd7a8fa725917b5..babed804a61f71d152fcb7b1e501a4ec912e9656 100644
|
| --- a/runtime/vm/compiler.cc
|
| +++ b/runtime/vm/compiler.cc
|
| @@ -21,7 +21,6 @@
|
| #include "vm/flow_graph_compiler.h"
|
| #include "vm/flow_graph_inliner.h"
|
| #include "vm/flow_graph_optimizer.h"
|
| -#include "vm/flow_graph_type_propagator.h"
|
| #include "vm/il_printer.h"
|
| #include "vm/longjump.h"
|
| #include "vm/object.h"
|
| @@ -54,7 +53,7 @@ DEFINE_FLAG(bool, verify_compiler, false,
|
| DECLARE_FLAG(bool, print_flow_graph);
|
| DECLARE_FLAG(bool, print_flow_graph_optimized);
|
| DECLARE_FLAG(bool, trace_failed_optimization_attempts);
|
| -DECLARE_FLAG(bool, trace_type_propagation);
|
| +
|
|
|
| // Compile a function. Should call only if the function has not been compiled.
|
| // Arg0: function object.
|
| @@ -191,25 +190,15 @@ static bool CompileParsedFunctionHelper(const ParsedFunction& parsed_function,
|
| // Use lists are maintained and validated by the inliner.
|
| }
|
|
|
| - if (FLAG_trace_type_propagation) {
|
| - OS::Print("Before type propagation:\n");
|
| - FlowGraphPrinter printer(*flow_graph);
|
| - printer.PrintBlocks();
|
| - }
|
| -
|
| // Propagate types and eliminate more type tests.
|
| if (FLAG_propagate_types) {
|
| FlowGraphTypePropagator propagator(flow_graph);
|
| - propagator.Propagate();
|
| - }
|
| -
|
| - if (FLAG_trace_type_propagation) {
|
| - OS::Print("After type propagation:\n");
|
| - FlowGraphPrinter printer(*flow_graph);
|
| - printer.PrintBlocks();
|
| + propagator.PropagateTypes();
|
| }
|
|
|
| + // Propagate sminess from CheckSmi to phis.
|
| flow_graph->ComputeUseLists();
|
| + optimizer.PropagateSminess();
|
|
|
| // Use propagated class-ids to optimize further.
|
| optimizer.ApplyClassIds();
|
|
|