diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2014-09-08 17:30:24 +0100 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2014-09-19 13:59:39 +0100 |
commit | d31cf3d55a0847c018c4eaa2b349b8eea509de64 (patch) | |
tree | 2594116391a59c1fce83c5cbd9058ba76534fec0 /compiler/optimizing/optimizing_compiler.cc | |
parent | e07d111b9bff8b68b8d0ed44fb95805a5c6f47fb (diff) | |
download | art-d31cf3d55a0847c018c4eaa2b349b8eea509de64.tar.gz art-d31cf3d55a0847c018c4eaa2b349b8eea509de64.tar.bz2 art-d31cf3d55a0847c018c4eaa2b349b8eea509de64.zip |
First optimization in new compiler: simple GVN.
Change-Id: Ibe0efa4e84fd020a53ded310a92e0b4363f91b12
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
-rw-r--r-- | compiler/optimizing/optimizing_compiler.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index 3ce8e7797b..702eba183c 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -25,6 +25,7 @@ #include "driver/compiler_driver.h" #include "driver/dex_compilation_unit.h" #include "graph_visualizer.h" +#include "gvn.h" #include "nodes.h" #include "register_allocator.h" #include "ssa_phi_elimination.h" @@ -260,6 +261,8 @@ CompiledMethod* OptimizingCompiler::TryCompile(const DexFile::CodeItem* code_ite SsaRedundantPhiElimination(graph).Run(); SsaDeadPhiElimination(graph).Run(); + GlobalValueNumberer(graph->GetArena(), graph).Run(); + visualizer.DumpGraph(kGVNPassName); SsaLivenessAnalysis liveness(*graph, codegen); liveness.Analyze(); @@ -300,6 +303,9 @@ CompiledMethod* OptimizingCompiler::TryCompile(const DexFile::CodeItem* code_ite graph->TransformToSSA(); visualizer.DumpGraph("ssa"); graph->FindNaturalLoops(); + SsaRedundantPhiElimination(graph).Run(); + SsaDeadPhiElimination(graph).Run(); + GlobalValueNumberer(graph->GetArena(), graph).Run(); SsaLivenessAnalysis liveness(*graph, codegen); liveness.Analyze(); visualizer.DumpGraph(kLivenessPassName); |