summaryrefslogtreecommitdiff
path: root/compiler/optimizing/loop_optimization.h
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2018-04-17 19:14:36 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2018-04-17 19:14:36 +0000
commit8f669504a1c4646501a2cf5d090597f9fed59f70 (patch)
tree763f65382b960cc867074ef78f0e63ca98c19569 /compiler/optimizing/loop_optimization.h
parent596f6b118acde4be2ff8042d126b70c27d84d8d6 (diff)
parent72411e6b3b286d91e4da894cd5b12e7a3dc88f40 (diff)
Merge "ART: Implement scalar loop peeling."
Diffstat (limited to 'compiler/optimizing/loop_optimization.h')
-rw-r--r--compiler/optimizing/loop_optimization.h13
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.
//