forked from OSchip/llvm-project
e8a5c17211
The PHI node checks for inner loop exits are too permissive currently. As indicated by an existing comment, we should only allow LCSSA PHI nodes that are part of reductions or are only used outside of the loop nest. We ensure this by checking the users of the LCSSA PHIs. Specifically, it is not safe to use an exiting value from the inner loop in the latch of the outer loop. It also moves the inner loop exit check before the outer loop exit check. Fixes PR43473. Reviewers: efriedma, mcrosier Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D68144 |
||
---|---|---|
.. | ||
call-instructions.ll | ||
currentLimitation.ll | ||
debuginfo.ll | ||
inner-only-reductions.ll | ||
interchange-flow-dep-outer.ll | ||
interchange-insts-between-indvar.ll | ||
interchange-no-deps.ll | ||
interchangeable.ll | ||
lcssa.ll | ||
loop-interchange-optimization-remarks.ll | ||
not-interchanged-dependencies-1.ll | ||
not-interchanged-loop-nest-3.ll | ||
not-interchanged-tightly-nested.ll | ||
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 | ||
profitability.ll | ||
reductions-across-inner-and-outer-loop.ll | ||
update-condbranch-duplicate-successors.ll |