llvm-project/llvm/test/Transforms/LoopInterchange
Congzhe Cao 829c1b6443 [LoopInterchange] fix tightlyNested() in LoopInterchange legality
This is yet another attempt to fix tightlyNested().

Add checks in tightlyNested() for the inner loop exit block,
such that 1) if there is control-flow divergence in between the inner
loop exit block and the outer loop latch, or 2) if the inner loop exit
block contains unsafe instructions, tightlyNested() returns false.

The reasoning behind is that after interchange, the original inner loop
exit block, which was part of the outer loop, would be put into the new
inner loop, and will be executed different number of times before and
after interchange. Thus it should be dealt with appropriately.

Reviewed By: Whitney

Differential Revision: https://reviews.llvm.org/D98263
2021-03-24 15:49:25 -04:00
..
call-instructions.ll
currentLimitation.ll
debuginfo.ll
inner-only-reductions.ll
interchange-flow-dep-outer.ll [NFC][LoopInterchange] Explicitly pass both `InnerLoop` and `OuterLoop` to `processLoop` 2021-02-16 22:17:44 +08:00
interchange-insts-between-indvar.ll
interchange-no-deps.ll [SimplifyCFG] MergeBlockIntoPredecessor() already knows how to preserve DomTree 2020-12-17 01:03:49 +03:00
interchangeable.ll
interchanged-loop-nest-3.ll [NFC] Refactor LoopInterchange into a loop-nest pass 2021-02-18 00:55:38 +08:00
lcssa-preheader.ll
lcssa.ll
loop-interchange-optimization-remarks.ll
not-interchanged-dependencies-1.ll
not-interchanged-loop-nest-3.ll [NFC][LoopInterchange] Explicitly pass both `InnerLoop` and `OuterLoop` to `processLoop` 2021-02-16 22:17:44 +08:00
not-interchanged-tightly-nested.ll [LoopInterchange] fix tightlyNested() in LoopInterchange legality 2021-03-24 15:49:25 -04:00
outer-only-reductions.ll
perserve-lcssa.ll
phi-ordering.ll
pr43176-move-to-new-latch.ll
pr43473-invalid-lcssa-phis-in-inner-exit.ll
pr43797-lcssa-for-multiple-outer-loop-blocks.ll
pr45743-move-from-inner-preheader.ll
profitability.ll
reductions-across-inner-and-outer-loop.ll Scalar: Don't visit constants in findInnerReductionPhi in LoopInterchange 2021-01-21 12:33:06 -08:00
update-condbranch-duplicate-successors.ll
vector-gep-operand.ll