summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/optimizing_compiler.cc
diff options
context:
space:
mode:
authorRoland Levillain <rpl@google.com>2014-09-30 16:15:14 +0100
committerRoland Levillain <rpl@google.com>2014-10-01 11:52:58 +0100
commitbf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8 (patch)
tree0bd049b173d23fcaed5c1b5cb4299e8faef840da /compiler/optimizing/optimizing_compiler.cc
parent34bb808affbed7a1db177b9ef4ab5461c2b2106b (diff)
downloadart-bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8.tar.gz
art-bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8.tar.bz2
art-bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8.zip
Introduce a class to implement optimization passes.
- Add art::HOptimization. - Rename art::ConstantPropagation to art::HConstantFolding in compiler/optimizing/constant_folding.h to avoid name clashes with a class of the same name in compiler/dex/post_opt_passes.h. - Rename art::DeadCodeElimination to art::HDeadCodeElimination for consistency reasons. - Have art::HDeadCodeElimination and art::HConstantFolding derive from art::HOptimization. - Start to use these optimizations in art:OptimizingCompiler::TryCompile. Change-Id: Iaab350c122d87b2333b3760312b15c0592d7e010
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
-rw-r--r--compiler/optimizing/optimizing_compiler.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc
index 65bdb18812..ee5091bbb5 100644
--- a/compiler/optimizing/optimizing_compiler.cc
+++ b/compiler/optimizing/optimizing_compiler.cc
@@ -22,6 +22,8 @@
#include "builder.h"
#include "code_generator.h"
#include "compiler.h"
+#include "constant_folding.h"
+#include "dead_code_elimination.h"
#include "driver/compiler_driver.h"
#include "driver/dex_compilation_unit.h"
#include "graph_visualizer.h"
@@ -260,6 +262,9 @@ CompiledMethod* OptimizingCompiler::TryCompile(const DexFile::CodeItem* code_ite
visualizer.DumpGraph("ssa");
graph->FindNaturalLoops();
+ HDeadCodeElimination(graph, visualizer).Execute();
+ HConstantFolding(graph, visualizer).Execute();
+
SsaRedundantPhiElimination(graph).Run();
SsaDeadPhiElimination(graph).Run();
InstructionSimplifier(graph).Run();