From 22af3bee34d0ab1a4bd186c71ccab00366882259 Mon Sep 17 00:00:00 2001 From: Aart Bik Date: Thu, 10 Sep 2015 12:50:58 -0700 Subject: Use induction variable range analysis in BCE (statically). Rationale: Finally! After lots of very large CLs, now a small CL that uses the new induction variable analysis in BCE (statically, using this dynamically with de-opt is TBD). Despite its relative small size, be aware though, since the CL introduces a new phase to the compiler. Change-Id: If5555a173fd5d55d147c63138ef51fc296fa1414 --- compiler/optimizing/optimizing_compiler.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'compiler/optimizing/optimizing_compiler.cc') diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index 44214606c0..8fc1e4e47d 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -51,6 +51,7 @@ #include "graph_checker.h" #include "graph_visualizer.h" #include "gvn.h" +#include "induction_var_analysis.h" #include "inliner.h" #include "instruction_simplifier.h" #include "intrinsics.h" @@ -462,7 +463,8 @@ static void RunOptimizations(HGraph* graph, SideEffectsAnalysis* side_effects = new (arena) SideEffectsAnalysis(graph); GVNOptimization* gvn = new (arena) GVNOptimization(graph, *side_effects); LICM* licm = new (arena) LICM(graph, *side_effects); - BoundsCheckElimination* bce = new (arena) BoundsCheckElimination(graph); + HInductionVarAnalysis* induction = new (arena) HInductionVarAnalysis(graph); + BoundsCheckElimination* bce = new (arena) BoundsCheckElimination(graph, induction); ReferenceTypePropagation* type_propagation = new (arena) ReferenceTypePropagation(graph, handles); InstructionSimplifier* simplify2 = new (arena) InstructionSimplifier( @@ -510,6 +512,7 @@ static void RunOptimizations(HGraph* graph, side_effects, gvn, licm, + induction, bce, simplify3, dce2, -- cgit v1.2.3-59-g8ed1b