diff options
author | 2016-12-01 10:22:31 -0800 | |
---|---|---|
committer | 2016-12-05 16:16:42 -0800 | |
commit | c071a01a26013ab6e3dbfc4131efa95a65aeb4ed (patch) | |
tree | bbe75527b8ee94483e4d797c6b2372adaabd81cf /compiler/optimizing/induction_var_range.h | |
parent | 5eb1e1e7341f4e7febf77c04f8649a9566b31c03 (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.h | 10 |
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, |