diff options
author | 2016-12-15 21:33:54 +0000 | |
---|---|---|
committer | 2016-12-15 21:33:55 +0000 | |
commit | e9f3269b5417806987dc1b3e56e05767cad0716d (patch) | |
tree | a4bca84637a396922976cc64f93bcdd47281a03a /compiler/optimizing/induction_var_range.cc | |
parent | 45d75c6194075f1c4e3372159cca533a301cabfd (diff) | |
parent | d0a022d76db4b79d105608e7bafab4c17e8ba510 (diff) |
Merge "Fine tuning the induction analysis."
Diffstat (limited to 'compiler/optimizing/induction_var_range.cc')
-rw-r--r-- | compiler/optimizing/induction_var_range.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/optimizing/induction_var_range.cc b/compiler/optimizing/induction_var_range.cc index e665551012..7bcc3845e7 100644 --- a/compiler/optimizing/induction_var_range.cc +++ b/compiler/optimizing/induction_var_range.cc @@ -983,10 +983,10 @@ bool InductionVarRange::GenerateLastValuePolynomial(HInductionVarAnalysis::Induc int64_t a = 0; int64_t b = 0; int64_t m = 0; - if (IsConstant(info->op_a->op_a, kExact, &a) && a >= 0 && - IsConstant(info->op_a->op_b, kExact, &b) && b >= 0 && + if (IsConstant(info->op_a->op_a, kExact, &a) && + IsConstant(info->op_a->op_b, kExact, &b) && IsConstant(trip->op_a, kExact, &m) && m >= 1) { - // Evaluate bounds on sum_i=0^m-1(a * i + b) + c with a,b >= 0 for known + // Evaluate bounds on sum_i=0^m-1(a * i + b) + c for known // maximum index value m as a * (m * (m-1)) / 2 + b * m + c. // TODO: generalize HInstruction* c_instr = nullptr; |