llvm-project/llvm/test/Transforms/LoopRotate
Max Kazantsev 92e9bddc49 [LoopRotate] Drop loop dispositions when rotating loops. PR56260
This is required because if there is a pure loop-invariant instruction, Loop Rotation
may decide to not clone it and just hoist it instead. If SCEV has previously cached
that it was loop-variant (not being smart enough to prove invariance), we may end
up with inconsistent cache state (which may later trigger false-negative assertion
failures checking that something was invariant).

This is a conservative fix that unconditionally drops the dispositions. We could
only drop it if the hoisting has actually happened, but it should take some time
understanding whether it's safe with all other things this function does.

Differential Revision: https://reviews.llvm.org/D134167
Reviewed By: fhahn
2022-09-19 18:01:02 +07:00
..
RISCV
2009-01-25-SingleEntryPhi.ll
PhiRename-1.ll
PhiSelfReference-1.ll
alloca.ll
basic.ll
call-prepare-for-lto.ll
callbr.ll [IR] Don't treat callbr as indirect terminator 2022-07-18 09:32:08 +02:00
catchret.ll
convergent.ll
crash.ll
dbg-value-duplicates-2.ll
dbg-value-duplicates.ll
dbgvalue.ll
freeze-crash.ll
indirectbr.ll
loopexitinglatch.ll
multiple-deopt-exits.ll
multiple-exits.ll
noalias.ll
nosimplifylatch.ll
oz-disable.ll
phi-dbgvalue.ll
phi-duplicate.ll
pr2639.ll
pr22337.ll
pr33701.ll
pr35210.ll Loop names used in reporting can grow very large 2022-09-09 13:45:14 -04:00
pr37205.ll
pr51981-scev-problem.ll
pr56260.ll [LoopRotate] Drop loop dispositions when rotating loops. PR56260 2022-09-19 18:01:02 +07:00
preserve-loop-simplify.ll
preserve-mssa.ll
preserve-scev.ll
simplifylatch.ll
switch.ll
vect.omp.persistence.ll