diff options
Diffstat (limited to 'compiler/dex/frontend.cc')
| -rw-r--r-- | compiler/dex/frontend.cc | 34 |
1 files changed, 4 insertions, 30 deletions
diff --git a/compiler/dex/frontend.cc b/compiler/dex/frontend.cc index adfbf2f3b5..f5bb85a910 100644 --- a/compiler/dex/frontend.cc +++ b/compiler/dex/frontend.cc @@ -21,6 +21,7 @@ #include "dataflow_iterator-inl.h" #include "leb128.h" #include "mirror/object.h" +#include "pass_driver.h" #include "runtime.h" #include "backend.h" #include "base/logging.h" @@ -251,36 +252,9 @@ static CompiledMethod* CompileMethod(CompilerDriver& compiler, } #endif - /* Do a code layout pass */ - cu.NewTimingSplit("MIROpt:CodeLayout"); - cu.mir_graph->CodeLayout(); - - /* Perform SSA transformation for the whole method */ - cu.NewTimingSplit("MIROpt:SSATransform"); - cu.mir_graph->SSATransformation(); - - /* Do constant propagation */ - cu.NewTimingSplit("MIROpt:ConstantProp"); - cu.mir_graph->PropagateConstants(); - - cu.NewTimingSplit("MIROpt:InitRegLoc"); - cu.mir_graph->InitRegLocations(); - - /* Count uses */ - cu.NewTimingSplit("MIROpt:UseCount"); - cu.mir_graph->MethodUseCount(); - - /* Perform null check elimination and type inference*/ - cu.NewTimingSplit("MIROpt:NCE_TypeInference"); - cu.mir_graph->NullCheckEliminationAndTypeInference(); - - /* Combine basic blocks where possible */ - cu.NewTimingSplit("MIROpt:BBCombine"); - cu.mir_graph->BasicBlockCombine(); - - /* Do some basic block optimizations */ - cu.NewTimingSplit("MIROpt:BBOpt"); - cu.mir_graph->BasicBlockOptimization(); + /* Create the pass driver and launch it */ + PassDriver driver(&cu); + driver.Launch(); if (cu.enable_debug & (1 << kDebugDumpCheckStats)) { cu.mir_graph->DumpCheckStats(); |