summaryrefslogtreecommitdiff
path: root/compiler/optimizing/induction_var_range.h
diff options
context:
space:
mode:
author Aart Bik <ajcbik@google.com> 2016-12-01 10:22:31 -0800
committer Aart Bik <ajcbik@google.com> 2016-12-05 16:16:42 -0800
commitc071a01a26013ab6e3dbfc4131efa95a65aeb4ed (patch)
treebbe75527b8ee94483e4d797c6b2372adaabd81cf /compiler/optimizing/induction_var_range.h
parent5eb1e1e7341f4e7febf77c04f8649a9566b31c03 (diff)
Added geometric induction variables analysis.
Rationale: Information on geometric and polynomial (coming soon) sequences are nice to have to further enhance BCE and last-value assignment. Test: test-art-host Change-Id: Ib5e2998c3eb1009def6fd00b82935da7c3ba7c6e
Diffstat (limited to 'compiler/optimizing/induction_var_range.h')
-rw-r--r--compiler/optimizing/induction_var_range.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/compiler/optimizing/induction_var_range.h b/compiler/optimizing/induction_var_range.h
index 034cf32b2d..f7360e83db 100644
--- a/compiler/optimizing/induction_var_range.h
+++ b/compiler/optimizing/induction_var_range.h
@@ -190,6 +190,10 @@ class InductionVarRange {
HInductionVarAnalysis::InductionInfo* trip,
bool in_body,
bool is_min) const;
+ Value GetGeometric(HInductionVarAnalysis::InductionInfo* info,
+ HInductionVarAnalysis::InductionInfo* trip,
+ bool in_body,
+ bool is_min) const;
Value GetFetch(HInstruction* instruction,
HInductionVarAnalysis::InductionInfo* trip,
bool in_body,
@@ -245,6 +249,12 @@ class InductionVarRange {
/*out*/ bool* needs_finite_test,
/*out*/ bool* needs_taken_test) const;
+ bool GenerateLastValueGeometric(HInductionVarAnalysis::InductionInfo* info,
+ HInductionVarAnalysis::InductionInfo* trip,
+ HGraph* graph,
+ HBasicBlock* block,
+ /*out*/HInstruction** result) const;
+
bool GenerateLastValuePeriodic(HInductionVarAnalysis::InductionInfo* info,
HInductionVarAnalysis::InductionInfo* trip,
HGraph* graph,