1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/test/Transforms/LoopUnroll
John Brawn c944a4af03 [LoopUnroll] Keep the loop test only on the first iteration of max-or-zero loops
When we have a loop with a known upper bound on the number of iterations, and
furthermore know that either the number of iterations will be either exactly
that upper bound or zero, then we can fully unroll up to that upper bound
keeping only the first loop test to check for the zero iteration case.

Most of the work here is in plumbing this 'max-or-zero' information from the
part of scalar evolution where it's detected through to loop unrolling. I've
also gone for the safe default of 'false' everywhere but howManyLessThans which
could probably be improved.

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

llvm-svn: 284818
2016-10-21 11:08:48 +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 [LoopUnroll] Fix a PowerPC test broken by r277524. 2016-08-02 21:43:25 +00:00
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 [LoopUnroll] Include hotness of region in opt remark 2016-07-29 19:29:47 +00:00
loop-remarks.ll
partial-unroll-const-bounds.ll
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 [LoopUnroll] Switch the default value of -unroll-runtime-epilog back to its original value. 2016-08-02 21:24:14 +00:00
runtime-loop2.ll [LoopUnroll] Switch the default value of -unroll-runtime-epilog back to its original value. 2016-08-02 21:24:14 +00:00
runtime-loop3.ll
runtime-loop4.ll [LoopUnroll] Switch the default value of -unroll-runtime-epilog back to its original value. 2016-08-02 21:24:14 +00:00
runtime-loop5.ll [LoopUnroll] Switch the default value of -unroll-runtime-epilog back to its original value. 2016-08-02 21:24:14 +00:00
runtime-loop.ll [LoopUnroll] Switch the default value of -unroll-runtime-epilog back to its original value. 2016-08-02 21:24:14 +00:00
scevunroll.ll
shifted-tripcount.ll
tripcount-overflow.ll [LoopUnroll] Switch the default value of -unroll-runtime-epilog back to its original value. 2016-08-02 21:24:14 +00:00
unloop.ll [LoopUnroll] Include hotness of region in opt remark 2016-07-29 19:29:47 +00:00
unroll-cleanup.ll [LoopUnroll] Switch the default value of -unroll-runtime-epilog back to its original value. 2016-08-02 21:24:14 +00:00
unroll-cleanuppad.ll
unroll-count.ll
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