llvm-project/llvm/test/Transforms/LoopUnroll
Jamie Schmeiser be1ff1fe58 [NFC] Refactor loop peeling code for calculating phi invariance.
Summary:
Refactor loop peeling code by moving code for calculating phi invariance
into a separate class that does the calculation.  Redescribe and rework
the algorithm in preparation for adding increased functionality.  Add
test case that does not exhibit peeling that will be subsequently supported.

Author: Jamie Schmeiser <schmeise@ca.ibm.com>
Reviewed By: mkazantsev (Max Kazantsev)
Differential Revision: https://reviews.llvm.org/D138232
2022-11-25 09:07:14 -05:00
..
AArch64 [InstCombine] Fold ult(add(x,-1),c) -> ule(x,c) iff x != 0 (PR57635) 2022-09-20 16:44:41 +01:00
AMDGPU [AMDGPU][CostModel] Refine cost model for control-flow instructions. 2021-04-10 09:20:24 +03:00
ARM [SimplifyCFG][PhaseOrdering] Defer lowering switch into an integer range comparison and branch until after at least the IPSCCP 2022-02-17 12:13:55 +03:00
Hexagon
PowerPC [PowerPC] Do not increase cost for getUserCost with MMA types 2021-12-21 13:36:08 -06:00
RISCV [RISCV] Change how mtune aliases are implemented. 2022-08-18 16:22:25 -07:00
WebAssembly [InstCombine] Tighten up known library function signature tests (PR #56463) 2022-08-10 14:15:46 -06:00
X86 [BasicTTIImpl][LoopUnroll] getUnrollingPreferences(): emit ORE remark when advising against unrolling due to a call in a loop 2021-08-03 00:57:26 +03:00
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 [unroll] Keep unrolled iterations with initial iteration 2021-11-12 11:40:50 -08:00
2011-08-09-IVSimplify.ll
2011-08-09-PhiUpdate.ll [LoopUnroll] Remove unrelated passes from test (NFC) 2022-01-07 09:20:23 +01:00
2011-10-01-NoopTrunc.ll
2012-04-09-unroll-indirectbr.ll
FullUnroll.ll
assume-timeout.ll
basic.ll
callbr.ll [LoopInfo] Allow cloning of callbr 2022-07-19 09:57:28 +02:00
complete_unroll_profitability_with_assume.ll
convergent.ll
dce.ll Do actual DCE in LoopUnroll (try 4) 2021-05-19 10:25:31 -07:00
debug-info.ll
disable-full-unroll-by-opt.ll
disable-loop-unrolling_forced.ll
disable_nonforced.ll
disable_nonforced_count.ll
disable_nonforced_enable.ll
disable_nonforced_full.ll
ephemeral.ll
epilog_const_phi.ll
followup.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-invariant.ll Do actual DCE in LoopUnroll (try 4) 2021-05-19 10:25:31 -07:00
full-unroll-keep-first-exit.ll [unroll] Keep unrolled iterations with initial iteration 2021-11-12 11:40:50 -08:00
full-unroll-one-unpredictable-exit.ll [unroll] Keep unrolled iterations with initial iteration 2021-11-12 11:40:50 -08:00
high-cost-trip-count-computation.ll
ignore-annotation-intrinsic-cost.ll
invalidate_right_loop.ll
loop-block-disposition-after-full-unroll.ll [LoopUnroll] Add cache verification failure test case. 2022-09-26 14:25:37 +01:00
loop-remarks-with-hotness.ll [LoopUnroll] Simplify optimization remarks 2021-06-18 23:47:03 +02:00
loop-remarks.ll
multiple-exits.ll [unroll] Keep unrolled iterations with initial iteration 2021-11-12 11:40:50 -08:00
noalias.ll
nonlatchcondbr.ll Revert "[unroll] Prune all but first copy of invariant exit" 2022-01-03 11:57:35 -08:00
not-rotated.ll
opt-levels.ll
optsize-loop-size.ll Do actual DCE in LoopUnroll (try 4) 2021-05-19 10:25:31 -07:00
partial-unroll-const-bounds.ll
partial-unroll-dead-instructions.ll
partial-unroll-non-latch-exit.ll [unroll] Keep unrolled iterations with initial iteration 2021-11-12 11:40:50 -08:00
partially-unroll-unconditional-latch.ll [unroll] Keep unrolled iterations with initial iteration 2021-11-12 11:40:50 -08:00
peel-branch-weights.ll [LoopPeeling] Add flag to disable support for peeling loops with non-latch exits 2022-10-25 12:19:14 -07:00
peel-loop-and-unroll.ll [Support] Make report_fatal_error respect its GenCrashDiag argument so it doesn't generate a backtrace 2022-05-30 19:19:23 +01:00
peel-loop-conditions-pgo-1.ll
peel-loop-conditions-pgo-2.ll
peel-loop-conditions.ll [LoopPeeling] Support peeling loops with non-latch exits 2022-10-07 12:35:52 +02:00
peel-loop-inner.ll Revert "reland e5581df60a [SimplifyCFG] accumulate bonus insts cost" 2022-10-25 12:15:39 -04:00
peel-loop-irreducible.ll [LoopPeeling] Support peeling loops with non-latch exits 2022-10-07 12:35:52 +02:00
peel-loop-negative.ll
peel-loop-nests.ll
peel-loop-noalias-scope-decl.ll
peel-loop-not-forced.ll
peel-loop-pgo-deopt-idom-2.ll [LoopPeel] Allow peeling with multiple unreachable-terminated exit blocks. 2021-08-25 13:26:40 +01:00
peel-loop-pgo-deopt-idom.ll [LoopPeel] Allow peeling with multiple unreachable-terminated exit blocks. 2021-08-25 13:26:40 +01:00
peel-loop-pgo-deopt.ll [LoopPeel] Allow peeling with multiple unreachable-terminated exit blocks. 2021-08-25 13:26:40 +01:00
peel-loop-pgo.ll
peel-loop-phi-analysis.ll [NFC] Refactor loop peeling code for calculating phi invariance. 2022-11-25 09:07:14 -05:00
peel-loop-scev-invalidate.ll
peel-loop.ll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
peel-loop2.ll
peel-multiple-unreachable-exits.ll [LoopPeeling] Support peeling loops with non-latch exits 2022-10-07 12:35:52 +02:00
peel-to-turn-invariant-accesses-dereferenceable.ll [LoopPeel] Peel if it turns invariant loads dereferenceable. 2021-10-12 11:42:28 +01:00
pr10813.ll
pr11361.ll
pr14167.ll
pr18861.ll
pr27157.ll
pr28132.ll
pr31718.ll Remove loop invariant exit conditions from tests in advance of D116496 2022-01-03 09:44:28 -08:00
pr33437.ll [LoopUnroll] Separate peeling from unrolling 2021-06-05 10:32:00 +02:00
pr45939-peel-count-and-complete-unroll.ll [LoopUnroll] Separate peeling from unrolling 2021-06-05 10:32:00 +02:00
rebuild_lcssa.ll [LoopUnroll] Regenerate test checks (NFC) 2021-05-24 17:26:07 +02:00
revert-D110922.ll [Test] Add commit justifying revert of D110922 2021-10-09 14:32:46 +07:00
revisit.ll Loop names used in reporting can grow very large 2022-09-09 13:45:14 -04:00
runtime-epilog-debuginfo.ll Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
runtime-exit-phi-scev-invalidation.ll [LoopUnrollRuntime] Invalidate SCEV for exit phi in ConnectProlog. 2022-06-29 20:28:43 +01:00
runtime-li.ll [LoopUnroll] Make some tests more robust (NFC) 2021-04-17 20:59:20 +02:00
runtime-loop-at-most-two-exits.ll [LoopUnroll] Freeze tripcount rather than condition 2022-05-24 09:42:39 +02:00
runtime-loop-branchweight.ll
runtime-loop-known-exit.ll [LoopUnroll] Use smallest exact trip count from any exit 2021-06-20 20:58:26 +02:00
runtime-loop-multiexit-dom-verify.ll [LoopUnroll] Freeze tripcount rather than condition 2022-05-24 09:42:39 +02:00
runtime-loop-multiple-exits.ll Return "[SCEV] Use context to strengthen flags of BinOps" 2022-08-16 14:12:36 +07:00
runtime-loop-non-exiting-latch.ll
runtime-loop.ll [runtime-unroll] Use incrementing IVs instead of decrementing ones 2021-11-12 15:44:58 -08:00
runtime-loop1.ll [runtime] Move prolog/epilog block to a post-simplify strategy 2021-08-31 09:29:36 -07:00
runtime-loop2.ll
runtime-loop3.ll
runtime-loop4.ll
runtime-loop5.ll [SCEV] Canonicalize X - urem X, Y patterns 2021-11-16 11:59:21 -08:00
runtime-multiexit-heuristic.ll [LoopUnroll] Freeze tripcount rather than condition 2022-05-24 09:42:39 +02:00
runtime-small-upperbound.ll [unroll] Keep unrolled iterations with initial iteration 2021-11-12 11:40:50 -08:00
runtime-unroll-assume-no-remainder.ll [runtime-unroll] Use incrementing IVs instead of decrementing ones 2021-11-12 15:44:58 -08:00
runtime-unroll-remainder.ll [InstCombine] Fold ult(add(x,-1),c) -> ule(x,c) iff x != 0 (PR57635) 2022-09-20 16:44:41 +01:00
scev-dispositions-type-not-scevable.ll [LoopUnroll] Add test for crash exposed by 9e931439. 2022-10-07 20:02:58 +01:00
scev-forget-exit-phis.ll [LoopUnroll] Forget exit values when making changes. 2022-10-18 15:12:24 +01:00
scevunroll.ll [LoopPeel] Forget SCEV for updated exit phi values. 2022-06-20 13:19:27 +02:00
shifted-tripcount.ll [unroll] Keep unrolled iterations with initial iteration 2021-11-12 11:40:50 -08:00
tripcount-overflow.ll [LoopUnroll] Regenerate test checks (NFC) 2022-05-18 17:20:09 +02:00
unloop.ll [LoopUnroll] Use smallest exact trip count from any exit 2021-06-20 20:58:26 +02:00
unroll-after-peel.ll
unroll-cleanup.ll
unroll-cleanuppad.ll
unroll-cost-symbolic-execute.ll [unroll] Use value domain for symbolic execution based cost model 2021-05-26 08:41:25 -07:00
unroll-count.ll
unroll-header-exiting-with-phis-multiple-exiting-blocks.ll [unroll] Keep unrolled iterations with initial iteration 2021-11-12 11:40:50 -08:00
unroll-header-exiting-with-phis.ll Do actual DCE in LoopUnroll (try 4) 2021-05-19 10:25:31 -07:00
unroll-heuristics-pgo.ll
unroll-loop-invalidation.ll [LAA] Change to function analysis for new PM. 2022-10-01 15:44:27 +01:00
unroll-maxcount.ll
unroll-opt-attribute.ll
unroll-pragmas-disabled.ll
unroll-pragmas.ll [LoopUnroll] Always respect user unroll pragma 2022-04-11 14:33:24 -04:00
unroll-preserve-scev-lcssa.ll
unroll-unconditional-latch.ll [unroll] Keep unrolled iterations with initial iteration 2021-11-12 11:40:50 -08:00
update-loop-info-in-subloops.ll [opt] Don't translate legacy -analysis flag to require<analysis> 2022-10-07 14:54:34 -07:00
wrong_assert_in_peeling.ll [LoopUnroll] Separate peeling from unrolling 2021-06-05 10:32:00 +02:00