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 [LoopUnrollAnalyzer] Fix a bug in UnrolledInstAnalyzer::visitLoad. 2016-06-23 14:31:31 +00:00
full-unroll-heuristics-2.ll [LoopUnrollAnalyzer] Take into account cost of instructions controlling branches, along with their operands. 2016-05-18 21:20:12 +00:00
full-unroll-heuristics-cmp.ll [LoopUnrollAnalyzer] Don't treat gep-instructions with simplified offset as simplified. 2016-05-13 01:42:34 +00:00
full-unroll-heuristics-dce.ll Revert "Revert "[Unroll] Implement a conservative and monotonically increasing cost tracking system during the full unroll heuristic analysis that avoids counting any instruction cost until that instruction becomes "live" through a side-effect or use outside the..."" 2016-05-13 21:23:25 +00:00
full-unroll-heuristics-geps.ll Revert "Revert "[Unroll] Implement a conservative and monotonically increasing cost tracking system during the full unroll heuristic analysis that avoids counting any instruction cost until that instruction becomes "live" through a side-effect or use outside the..."" 2016-05-13 21:23:25 +00:00
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 The patch refactors unroll pass. 2016-05-27 23:15:06 +00:00
pr10813.ll
pr11361.ll
pr14167.ll
pr18861.ll
pr27157.ll
pr28132.ll [LoopUnroll] Don't crash trying to unroll loop with EH pad exit 2016-06-15 00:19:56 +00:00
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 The patch set unroll disable pragma when unroll 2016-06-08 20:21:24 +00:00
unroll-opt-attribute.ll Loop unroller: set thresholds for optsize and minsize functions to zero 2016-05-10 21:45:55 +00:00
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