Chromium Code Reviews| Index: runtime/vm/compiler.cc |
| diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc |
| index babed804a61f71d152fcb7b1e501a4ec912e9656..ae0db89fb6bc98591a97edfa9fd7a8fa725917b5 100644 |
| --- a/runtime/vm/compiler.cc |
| +++ b/runtime/vm/compiler.cc |
| @@ -21,6 +21,7 @@ |
| #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" |
| @@ -53,7 +54,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. |
| @@ -190,15 +191,25 @@ 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"); |
|
srdjan
2013/02/11 20:54:31
Have we made decision to print diagnostics with Pr
Vyacheslav Egorov (Google)
2013/02/18 14:05:22
I am not sure.
FlowGraphPrinter still prints to s
|
| + FlowGraphPrinter printer(*flow_graph); |
| + printer.PrintBlocks(); |
| + } |
| + |
| // Propagate types and eliminate more type tests. |
| if (FLAG_propagate_types) { |
| FlowGraphTypePropagator propagator(flow_graph); |
| - propagator.PropagateTypes(); |
| + propagator.Propagate(); |
| + } |
| + |
| + if (FLAG_trace_type_propagation) { |
| + OS::Print("After type propagation:\n"); |
| + FlowGraphPrinter printer(*flow_graph); |
| + printer.PrintBlocks(); |
| } |
| - // Propagate sminess from CheckSmi to phis. |
| flow_graph->ComputeUseLists(); |
| - optimizer.PropagateSminess(); |
| // Use propagated class-ids to optimize further. |
| optimizer.ApplyClassIds(); |