diff options
author | Calin Juravle <calin@google.com> | 2015-04-21 14:07:50 +0100 |
---|---|---|
committer | Calin Juravle <calin@google.com> | 2015-04-22 12:13:44 +0100 |
commit | 8f20bdb9d3b7516e75a7845e610105d87ce25ae6 (patch) | |
tree | b55e5b7695e482dc66dda6a0175bb56251294baf /compiler/optimizing/optimizing_compiler.cc | |
parent | 641547a5f18ca2ea54469cceadcfef64f132e5e0 (diff) | |
download | android_art-8f20bdb9d3b7516e75a7845e610105d87ce25ae6.tar.gz android_art-8f20bdb9d3b7516e75a7845e610105d87ce25ae6.tar.bz2 android_art-8f20bdb9d3b7516e75a7845e610105d87ce25ae6.zip |
Run DCE again after all the other optimizations have run.
On docs this doubles the amount of instructions removed.
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
-rw-r--r-- | compiler/optimizing/optimizing_compiler.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index 2ec8536cdf..ab752c3655 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -320,7 +320,8 @@ static void RunOptimizations(HGraph* graph, const DexCompilationUnit& dex_compilation_unit, PassInfoPrinter* pass_info_printer, StackHandleScopeCollection* handles) { - HDeadCodeElimination dce(graph); + HDeadCodeElimination dce1(graph, stats); + HDeadCodeElimination dce2(graph, stats); HConstantFolding fold1(graph); InstructionSimplifier simplify1(graph, stats); HBooleanSimplifier boolean_not(graph); @@ -339,7 +340,7 @@ static void RunOptimizations(HGraph* graph, HOptimization* optimizations[] = { &intrinsics, - &dce, + &dce1, &fold1, &simplify1, // BooleanSimplifier depends on the InstructionSimplifier removing redundant @@ -352,7 +353,8 @@ static void RunOptimizations(HGraph* graph, &licm, &bce, &type_propagation, - &simplify2 + &simplify2, + &dce2, }; RunOptimizations(optimizations, arraysize(optimizations), pass_info_printer); |