llvm-project/llvm/test/Transforms/LoopInterchange
Congzhe Cao bfefde22b6 [LoopInterhcange] Handle movement of reduction phis appropriately
This patch fixes pr43326 and pr48212.

Currently when we move reduction phis to the right place,
loop interchange assumes the first phi in loop headers is
an induction phi, skips the first phi and assumes the rest
of phis are candidate reduction phis to move. However, it
may not always be the case.

This patch loops over all phis in loop headers and considers
a phi node as a candidate reduction phi to move only when it
is indeed a reduction phi across outer and inner loop.

Reviewed By: Whitney

Differential Revision: https://reviews.llvm.org/D102743
2021-05-31 16:27:38 -04:00
..
call-instructions.ll
currentLimitation.ll
debuginfo.ll
inner-indvar-depend-on-outer-indvar.ll [LoopInterchange] Fix legality for triangular loops 2021-05-11 18:36:53 -04:00
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 [LoopInterchange] Fix transformation bugs in loop interchange 2021-04-08 14:58:13 -04:00
lcssa.ll [LoopInterchange] Handle lcssa PHIs with multiple predecessors 2021-05-11 21:30:54 -04:00
loop-interchange-optimization-remarks.ll [Dependence Analysis] Enable delinearization of fixed sized arrays 2021-05-10 10:30:15 -07:00
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-header-jump-to-inner-latch.ll [LoopInterchange] Fix transformation bugs in loop interchange 2021-04-08 14:58:13 -04:00
outer-only-reductions.ll
perserve-lcssa.ll
phi-ordering.ll
pr43176-move-to-new-latch.ll
pr43326.ll [LoopInterhcange] Handle movement of reduction phis appropriately 2021-05-31 16:27:38 -04:00
pr43473-invalid-lcssa-phis-in-inner-exit.ll
pr43797-lcssa-for-multiple-outer-loop-blocks.ll
pr45743-move-from-inner-preheader.ll
pr48212.ll [LoopInterhcange] Handle movement of reduction phis appropriately 2021-05-31 16:27:38 -04:00
profitability.ll [Dependence Analysis] Enable delinearization of fixed sized arrays 2021-05-10 10:30:15 -07:00
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