summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/optimizing_compiler.cc
diff options
context:
space:
mode:
authorCalin Juravle <calin@google.com>2015-04-21 14:07:50 +0100
committerCalin Juravle <calin@google.com>2015-04-22 12:13:44 +0100
commit8f20bdb9d3b7516e75a7845e610105d87ce25ae6 (patch)
treeb55e5b7695e482dc66dda6a0175bb56251294baf /compiler/optimizing/optimizing_compiler.cc
parent641547a5f18ca2ea54469cceadcfef64f132e5e0 (diff)
downloadandroid_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.cc8
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);