aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/DFAPacketizer.cpp
diff options
context:
space:
mode:
authorFrancis Visoiu Mistrih <francisvm@yahoo.com>2019-11-04 16:28:23 -0800
committerFrancis Visoiu Mistrih <francisvm@yahoo.com>2019-11-05 06:39:22 -0800
commit47d1029788b6744596bb1ab6791450eb32f2a488 (patch)
tree4470b2d267856fc50fe4bc816b00664e9e17ba1b /llvm/lib/CodeGen/DFAPacketizer.cpp
parent68f39de042ef34ef17d93c18e80d42f2e1a970ab (diff)
downloadllvm-47d1029788b6744596bb1ab6791450eb32f2a488.zip
llvm-47d1029788b6744596bb1ab6791450eb32f2a488.tar.gz
llvm-47d1029788b6744596bb1ab6791450eb32f2a488.tar.bz2
[ObjC][ARC] Ignore lifetime markers between *ReturnValue calls
When eliminating a pair of `llvm.objc.autoreleaseReturnValue` followed by `llvm.objc.retainAutoreleasedReturnValue` we need to make sure that the instructions in between are safe to ignore. Other than bitcasts and useless GEPs, it's also safe to ignore lifetime markers for both static allocas (lifetime.start/lifetime.end) and dynamic allocas (stacksave/stackrestore). These get added by the inliner as part of the return sequence and can prevent the transformation from happening in practice. Differential Revision: https://reviews.llvm.org/D69833
Diffstat (limited to 'llvm/lib/CodeGen/DFAPacketizer.cpp')
0 files changed, 0 insertions, 0 deletions