summaryrefslogtreecommitdiff
path: root/compiler/optimizing/induction_var_analysis.h
diff options
context:
space:
mode:
author Aart Bik <ajcbik@google.com> 2016-02-19 20:14:38 -0800
committer Aart Bik <ajcbik@google.com> 2016-02-24 11:08:32 -0800
commit97412c92afb3f6630c4f0eafe6d6161862bfb4c1 (patch)
tree124411d0160da1a7f0869c29029ef4dbfac6da97 /compiler/optimizing/induction_var_analysis.h
parentb4982aab07ae4cdaba13b4cb99306459d92e52d5 (diff)
Use range analysis for better trip count analysis
Rationale: Marking more loops as always-taken avoids generating unnecessary new top tests while marking more loops are non-infinite enables more optimizations. This CL helps with these improvements. Also, some more code is shared between induction and range analysis and a bug with refining ranges has been fixed. Bug: 27151190 Change-Id: Iecc0d7f32ae4779ee5424cda9dcc20816220935e
Diffstat (limited to 'compiler/optimizing/induction_var_analysis.h')
-rw-r--r--compiler/optimizing/induction_var_analysis.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/optimizing/induction_var_analysis.h b/compiler/optimizing/induction_var_analysis.h
index 84d5d82568..94d2646aec 100644
--- a/compiler/optimizing/induction_var_analysis.h
+++ b/compiler/optimizing/induction_var_analysis.h
@@ -189,7 +189,9 @@ class HInductionVarAnalysis : public HOptimization {
InductionInfo* CreateSimplifiedInvariant(InductionOp op, InductionInfo* a, InductionInfo* b);
// Constants.
- bool IsIntAndGet(InductionInfo* info, int64_t* value);
+ bool IsExact(InductionInfo* info, /*out*/ int64_t* value);
+ bool IsAtMost(InductionInfo* info, /*out*/ int64_t* value);
+ bool IsAtLeast(InductionInfo* info, /*out*/ int64_t* value);
// Helpers.
static bool InductionEqual(InductionInfo* info1, InductionInfo* info2);