diff options
author | 2018-04-17 19:14:36 +0000 | |
---|---|---|
committer | 2018-04-17 19:14:36 +0000 | |
commit | 8f669504a1c4646501a2cf5d090597f9fed59f70 (patch) | |
tree | 763f65382b960cc867074ef78f0e63ca98c19569 /compiler/optimizing/loop_optimization.h | |
parent | 596f6b118acde4be2ff8042d126b70c27d84d8d6 (diff) | |
parent | 72411e6b3b286d91e4da894cd5b12e7a3dc88f40 (diff) |
Merge "ART: Implement scalar loop peeling."
Diffstat (limited to 'compiler/optimizing/loop_optimization.h')
-rw-r--r-- | compiler/optimizing/loop_optimization.h | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/compiler/optimizing/loop_optimization.h b/compiler/optimizing/loop_optimization.h index 0120cffa56..f9a31a34d4 100644 --- a/compiler/optimizing/loop_optimization.h +++ b/compiler/optimizing/loop_optimization.h @@ -145,19 +145,14 @@ class HLoopOptimization : public HOptimization { // Performs optimizations specific to inner loop. Returns true if anything changed. bool OptimizeInnerLoop(LoopNode* node); - // Performs loop peeling/unrolling once (depends on the 'do_unrolling'); the transformation - // preserves the header and the loop info. - // - // Note: the function records copying information about blocks and instructions. - void PeelOrUnrollOnce(LoopNode* loop_node, - bool do_unrolling, - SuperblockCloner::HBasicBlockMap* bb_map, - SuperblockCloner::HInstructionMap* hir_map); - // Tries to apply loop unrolling for branch penalty reduction and better instruction scheduling // opportunities. Returns whether transformation happened. bool TryUnrollingForBranchPenaltyReduction(LoopNode* loop_node); + // Tries to apply loop peeling for loop invariant exits elimination. Returns whether + // transformation happened. + bool TryPeelingForLoopInvariantExitsElimination(LoopNode* loop_node); + // // Vectorization analysis and synthesis. // |