mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-01 07:10:37 +00:00
e8f6a1389e
Instructions defined in the original inner loop preheader may depend on values defined in the outer loop header, but the inner loop header will become the entry block in the loop nest. Move the instructions from the preheader to the outer loop header, so we do not break dominance. We also have to check for unsafe instructions in the preheader. If there are no unsafe instructions, all instructions should be movable. Currently we move all instructions except the terminator and rely on LICM to hoist out invariant instructions later. Fixes PR45743 |
||
---|---|---|
.. | ||
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-preheader.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 | ||
pr45743-move-from-inner-preheader.ll | ||
profitability.ll | ||
reductions-across-inner-and-outer-loop.ll | ||
update-condbranch-duplicate-successors.ll |