mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
ff5cb8d685
If a lifetime.end marker occurs along one path through the extraction region, but not another, then it's still incorrect to lift the marker, because there is some path through the extracted function which would ordinarily not reach the marker. If the call to the extracted function is in a loop, unrolling can cause inputs to the function to become optimized out as undef after the first iteration. To prevent incorrect stack slot merging in the calling function, it should be sufficient to lift lifetime.start markers for region inputs. I've tested this theory out by doing a stage2 check-all with randomized splitting enabled. This is a follow-up to r353973, and there's additional context for this change in https://reviews.llvm.org/D57834. rdar://47896986 Differential Revision: https://reviews.llvm.org/D58253 llvm-svn: 354159 |
||
---|---|---|
.. | ||
X86 | ||
addr-taken.ll | ||
apply-noreturn-bonus.ll | ||
apply-penalty-for-inputs.ll | ||
apply-penalty-for-outputs.ll | ||
apply-successor-penalty.ll | ||
coldentrycount.ll | ||
delete-use-without-def-dbg-val.ll | ||
duplicate-phi-preds-crash.ll | ||
eh-pads.ll | ||
eh-typeid-for.ll | ||
forward-dfs-reaches-marked-block.ll | ||
lifetime-markers-on-inputs-1.ll | ||
lifetime-markers-on-inputs-2.ll | ||
mark-the-whole-func-cold.ll | ||
minsize.ll | ||
multiple-exits.ll | ||
noreturn.ll | ||
outline-cold-asm.ll | ||
outline-disjoint-diamonds.ll | ||
outline-if-then-else.ll | ||
outline-multiple-entry-region.ll | ||
outline-while-loop.ll | ||
phi-with-distinct-outlined-values.ll | ||
region-overlap.ll | ||
resume.ll | ||
split-cold-2.ll | ||
split-out-dbg-val-of-arg.ll | ||
split-phis-in-exit-blocks.ll | ||
succ-block-with-self-edge.ll | ||
swifterror.ll | ||
unwind.ll |