1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/test/Transforms/LoopUnroll
Michael Kuperstein c222d94c24 [LoopUnroll] Implement profile-based loop peeling
This implements PGO-driven loop peeling.

The basic idea is that when the average dynamic trip-count of a loop is known,
based on PGO, to be low, we can expect a performance win by peeling off the
first several iterations of that loop.
Unlike unrolling based on a known trip count, or a trip count multiple, this
doesn't save us the conditional check and branch on each iteration. However,
it does allow us to simplify the straight-line code we get (constant-folding,
etc.). This is important given that we know that we will usually only hit this
code, and not the actual loop.

This is currently disabled by default.

Differential Revision: https://reviews.llvm.org/D25963

llvm-svn: 288274
2016-11-30 21:13:57 +00:00
..
AArch64 Reapply "[LoopUnroll] Use the upper bound of the loop trip count to fullly unroll a loop" 2016-10-12 21:29:38 +00:00
AMDGPU
PowerPC
X86
2004-05-13-DontUnrollTooMuch.ll
2005-03-06-BadLoopInfoUpdate.ll
2006-08-24-MultiBlockLoop.ll
2007-04-16-PhiUpdate.ll
2007-05-05-UnrollMiscomp.ll
2007-05-09-UnknownTripCount.ll
2007-11-05-Crash.ll
2011-08-08-PhiUpdate.ll
2011-08-09-IVSimplify.ll
2011-08-09-PhiUpdate.ll
2011-10-01-NoopTrunc.ll
2012-04-09-unroll-indirectbr.ll
basic.ll
convergent.ll
ephemeral.ll
full-unroll-bad-cost.ll
full-unroll-crashers.ll
full-unroll-heuristics-2.ll
full-unroll-heuristics-cmp.ll
full-unroll-heuristics-dce.ll
full-unroll-heuristics-geps.ll
full-unroll-heuristics-phi-prop.ll
full-unroll-heuristics.ll
full-unroll-keep-first-exit.ll [LoopUnroll] Keep the loop test only on the first iteration of max-or-zero loops 2016-10-21 11:08:48 +00:00
high-cost-trip-count-computation.ll
ignore-annotation-intrinsic-cost.ll
loop-remarks-with-hotness.ll
loop-remarks.ll
partial-unroll-const-bounds.ll
peel-loop-pgo.ll [LoopUnroll] Implement profile-based loop peeling 2016-11-30 21:13:57 +00:00
peel-loop.ll [LoopUnroll] Implement profile-based loop peeling 2016-11-30 21:13:57 +00:00
pr10813.ll
pr11361.ll
pr14167.ll
pr18861.ll
pr27157.ll
pr28132.ll
rebuild_lcssa.ll [LoopSimplify] When simplifying phis in loop-simplify, do it only if it preserves LCSSA form. 2016-09-27 21:03:45 +00:00
runtime-loop1.ll
runtime-loop2.ll
runtime-loop3.ll
runtime-loop4.ll
runtime-loop5.ll
runtime-loop.ll
scevunroll.ll
shifted-tripcount.ll
tripcount-overflow.ll
unloop.ll
unroll-cleanup.ll
unroll-cleanuppad.ll
unroll-count.ll
unroll-heuristics-pgo.ll Use profile info to adjust loop unroll threshold. 2016-11-17 01:17:02 +00:00
unroll-opt-attribute.ll
unroll-pragmas-disabled.ll
unroll-pragmas.ll Revert test change in r282894 as it's broken in some platforms. 2016-09-30 19:25:23 +00:00
update-loop-info-in-subloops.ll