1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/Transforms/HotColdSplit
Vedant Kumar ff5cb8d685 [CodeExtractor] Do not lift lifetime.end markers for region inputs
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
2019-02-15 18:46:58 +00:00
..
X86 [HotColdSplit] Introduce a cost model to control splitting behavior 2019-01-25 18:30:37 +00:00
addr-taken.ll [HotColdSplit] Introduce a cost model to control splitting behavior 2019-01-25 18:30:37 +00:00
apply-noreturn-bonus.ll [HotColdSplit] Introduce a cost model to control splitting behavior 2019-01-25 18:30:37 +00:00
apply-penalty-for-inputs.ll [HotColdSplit] Introduce a cost model to control splitting behavior 2019-01-25 18:30:37 +00:00
apply-penalty-for-outputs.ll [HotColdSplit] Introduce a cost model to control splitting behavior 2019-01-25 18:30:37 +00:00
apply-successor-penalty.ll [HotColdSplit] Introduce a cost model to control splitting behavior 2019-01-25 18:30:37 +00:00
coldentrycount.ll [HotColdSplit] With PGO add profile entry metadata to split cold function 2019-02-07 17:50:35 +00:00
delete-use-without-def-dbg-val.ll
duplicate-phi-preds-crash.ll [CodeExtractor] Emit lifetime markers around reloads of outputs 2019-01-19 02:37:59 +00:00
eh-pads.ll [HotColdSplit] Split more aggressively before/after cold invokes 2019-01-25 03:22:23 +00:00
eh-typeid-for.ll
forward-dfs-reaches-marked-block.ll
lifetime-markers-on-inputs-1.ll [CodeExtractor] Do not lift lifetime.end markers for region inputs 2019-02-15 18:46:58 +00:00
lifetime-markers-on-inputs-2.ll [CodeExtractor] Do not lift lifetime.end markers for region inputs 2019-02-15 18:46:58 +00:00
mark-the-whole-func-cold.ll
minsize.ll [HotColdSplit] Mark inherently cold functions as such 2019-01-19 02:38:47 +00:00
multiple-exits.ll
noreturn.ll
outline-cold-asm.ll
outline-disjoint-diamonds.ll [HotColdSplit] Introduce a cost model to control splitting behavior 2019-01-25 18:30:37 +00:00
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 [HotColdSplit] Do not split out resume instructions 2019-02-05 23:39:02 +00:00
split-cold-2.ll [HotColdSplit] Introduce a cost model to control splitting behavior 2019-01-25 18:30:37 +00:00
split-out-dbg-val-of-arg.ll
split-phis-in-exit-blocks.ll [CodeExtractor] Emit lifetime markers around reloads of outputs 2019-01-19 02:37:59 +00:00
succ-block-with-self-edge.ll
swifterror.ll [CodeExtractor] Add support for the swifterror attribute 2019-01-28 19:13:37 +00:00
unwind.ll [HotColdSplit] Do not split out resume instructions 2019-02-05 23:39:02 +00:00