llvm-project/llvm/test/Transforms/LoopInterchange
Florian Hahn a684a99441 [LoopInterchange] Support reductions across inner and outer loop.
This patch adds logic to detect reductions across the inner and outer
loop by following the incoming values of PHI nodes in the outer loop. If
the incoming values take part in a reduction in the inner loop or come
from outside the outer loop, we found a reduction spanning across inner
and outer loop.

With this change, ~10% more loops are interchanged in the LLVM
test-suite + SPEC2006.

Fixes https://bugs.llvm.org/show_bug.cgi?id=30472

Reviewers: mcrosier, efriedma, karthikthecool, davide, hfinkel, dmgreen

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D43245

llvm-svn: 346438
2018-11-08 20:44:19 +00:00
..
call-instructions.ll [LoopInterchange] Require asserts for test using -stats (NFC) 2018-04-05 13:07:39 +00:00
currentLimitation.ll [LoopInterchange] Use getExitBlock()/getExitingBlock instead of manual impl. 2018-04-25 09:35:54 +00:00
debuginfo.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
inner-only-reductions.ll [LoopInterchange] Support reductions across inner and outer loop. 2018-11-08 20:44:19 +00:00
interchange-flow-dep-outer.ll [LoopInterchange] Preserve LoopInfo after interchanging. 2018-04-05 09:48:45 +00:00
interchange-insts-between-indvar.ll [DA] Enable -da-delinearize by default 2018-06-21 11:53:16 +00:00
interchange-no-deps.ll [LoopInterchange] Add REQUIRES: asserts to test. 2018-04-24 18:10:52 +00:00
interchangeable.ll [LoopInterchange] Preserve LCSSA. 2018-09-26 19:34:25 +00:00
lcssa.ll [LoopInterchange] Support reductions across inner and outer loop. 2018-11-08 20:44:19 +00:00
loop-interchange-optimization-remarks.ll [LoopInterchange] Preserve LoopInfo after interchanging. 2018-04-05 09:48:45 +00:00
not-interchanged-dependencies-1.ll [LoopInterchange] Preserve LoopInfo after interchanging. 2018-04-05 09:48:45 +00:00
not-interchanged-loop-nest-3.ll [LoopInterchange] Preserve LoopInfo after interchanging. 2018-04-05 09:48:45 +00:00
not-interchanged-tightly-nested.ll [LoopInterchange] Preserve LoopInfo after interchanging. 2018-04-05 09:48:45 +00:00
outer-only-reductions.ll [LoopInterchange] Support reductions across inner and outer loop. 2018-11-08 20:44:19 +00:00
phi-ordering.ll [LoopInterchange] Remove support for inner-only reductions. 2018-11-01 19:25:00 +00:00
profitability.ll NFC - Various typo fixes in tests 2018-07-04 13:28:39 +00:00
reductions-across-inner-and-outer-loop.ll [LoopInterchange] Support reductions across inner and outer loop. 2018-11-08 20:44:19 +00:00