diff options
| author | 2017-01-13 19:48:20 +0000 | |
|---|---|---|
| committer | 2017-01-13 19:48:21 +0000 | |
| commit | 2f12c6581b334e81949016cf262f7ae1dd0737ea (patch) | |
| tree | 1840b3747213d7f2b27ebf43e98f444fc9ef81a6 /compiler/optimizing/loop_optimization.h | |
| parent | c00735af8acafb0920f84f663c88df4a59894241 (diff) | |
| parent | 6b69e0acb0e4c506ce2587e362c38e36e41e34ab (diff) | |
Merge "Complete unrolling of loops with small body and trip count one."
Diffstat (limited to 'compiler/optimizing/loop_optimization.h')
| -rw-r--r-- | compiler/optimizing/loop_optimization.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/optimizing/loop_optimization.h b/compiler/optimizing/loop_optimization.h index 0f05b24c37..9ddab4150c 100644 --- a/compiler/optimizing/loop_optimization.h +++ b/compiler/optimizing/loop_optimization.h @@ -60,19 +60,21 @@ class HLoopOptimization : public HOptimization { void TraverseLoopsInnerToOuter(LoopNode* node); + // Simplification. void SimplifyInduction(LoopNode* node); void SimplifyBlocks(LoopNode* node); - void RemoveIfEmptyInnerLoop(LoopNode* node); + bool SimplifyInnerLoop(LoopNode* node); + // Helpers. bool IsPhiInduction(HPhi* phi); bool IsEmptyHeader(HBasicBlock* block); bool IsEmptyBody(HBasicBlock* block); - bool IsOnlyUsedAfterLoop(HLoopInformation* loop_info, HInstruction* instruction, + bool collect_loop_uses, /*out*/ int32_t* use_count); - void ReplaceAllUses(HInstruction* instruction, HInstruction* replacement); bool TryReplaceWithLastValue(HInstruction* instruction, HBasicBlock* block); + void RemoveDeadInstructions(const HInstructionList& list); // Range information based on prior induction variable analysis. InductionVarRange induction_range_; |