Introduce a SideEffectsAnalysis class.
LICM also needs the side effects information of loops, so move
the GVN::ComputeSideEffects method into its own analysis class.
Change-Id: I810c8230a0eb6b9b536e8f808e17a3a4ad72f7db
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc
index 5bca730..7f99edb 100644
--- a/compiler/optimizing/optimizing_compiler.cc
+++ b/compiler/optimizing/optimizing_compiler.cc
@@ -214,7 +214,8 @@
HInliner inliner(graph, dex_compilation_unit, driver, stats);
HConstantFolding fold2(graph);
- GVNOptimization gvn(graph);
+ SideEffectsAnalysis side_effects(graph);
+ GVNOptimization gvn(graph, side_effects);
BoundsCheckElimination bce(graph);
InstructionSimplifier simplify2(graph);
@@ -229,6 +230,7 @@
&simplify1,
&inliner,
&fold2,
+ &side_effects,
&gvn,
&bce,
&simplify2