1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00
llvm-mirror/test/Transforms/LoopRotate
Fedor Sergeev af7baa2a66 [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found
In case of loops with multiple exit where all-but-one exit are deoptimizing
it might happen that the first rotation will end up with latch having a deoptimizing
exit. This makes the loop unsuitable for trip-count analysis (say, getLoopEstimatedTripCount)
as well as for loop transformations that know how to handle multple deoptimizing exits.

It pretty much means that canonical form in multple-deoptimizing-exits case should be
with non-deoptimizing exit at latch.
Teach loop-rotation to reach this canonical form by repeating rotation.

-loop-rotate-multi option introduced to control this behavior, currently disabled by default.

Reviewers: skatkov, asbirlea, reames, fhahn
Reviewed By: skatkov

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73058
2020-01-23 15:56:24 +03:00
..
2009-01-25-SingleEntryPhi.ll
alloca.ll
basic.ll
callbr.ll
catchret.ll
convergent.ll
crash.ll
dbg-value-duplicates-2.ll [BasicBlockUtils] Fix dbg.value elimination problem in MergeBlockIntoPredecessor 2019-12-16 11:41:21 +01:00
dbg-value-duplicates.ll
dbgvalue.ll
indirectbr.ll
loopexitinglatch.ll
multiple-deopt-exits.ll [LoopRotate] add ability to repeat loop rotation until non-deoptimizing exit is found 2020-01-23 15:56:24 +03:00
multiple-exits.ll
nosimplifylatch.ll
oz-disable.ll
phi-dbgvalue.ll
phi-duplicate.ll
PhiRename-1.ll
PhiSelfReference-1.ll
pr2639.ll
pr22337.ll
pr33701.ll
pr35210.ll
pr37205.ll
preserve-loop-simplify.ll
preserve-mssa.ll
preserve-scev.ll
simplifylatch.ll
switch.ll [LoopRotate] Add tests for rotate with switch; NFC 2020-01-11 11:03:29 +01:00
vect.omp.persistence.ll