From 52be7e759acecc3841dca0ac1b703034d8cad60d Mon Sep 17 00:00:00 2001 From: Aart Bik Date: Thu, 23 Jun 2016 11:20:41 -0700 Subject: Improvements in induction range analysis. Rationale: Uses range analysis while determining whether trip-counts are "safe", which improves analysis of triangular loops. Also implements more effective triangular loop analysis by evaluating induction information only once and using a top level hint (instead of the "iterative refinement" that was used earlier). Also fixes analysis of triangular trip counts that may wrap-around. All with tests. Test: see induction_var_range_test/530-checker-loops* BUG=27151190 Change-Id: I1877c8ce0c9a52005900eb9dfdbb1918df100278 --- compiler/optimizing/induction_var_analysis.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'compiler/optimizing/induction_var_analysis.h') diff --git a/compiler/optimizing/induction_var_analysis.h b/compiler/optimizing/induction_var_analysis.h index f1965f07b2..7c74816c26 100644 --- a/compiler/optimizing/induction_var_analysis.h +++ b/compiler/optimizing/induction_var_analysis.h @@ -132,7 +132,7 @@ class HInductionVarAnalysis : public HOptimization { InductionInfo* a, InductionInfo* b, Primitive::Type type) { - DCHECK(a != nullptr); + DCHECK(a != nullptr && b != nullptr); return new (graph_->GetArena()) InductionInfo(kInvariant, op, a, b, nullptr, type); } -- cgit v1.2.3-59-g8ed1b