[PATCH] D43269: [MemorySSA] Be less aggressive with @llvm.lifetime.start
George Burgess IV via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Feb 18 10:30:01 PST 2018
george.burgess.iv added a comment.
So, we have to support them at the moment because, at the very least, the inliner will merge allocas with non-overlapping lifetimes (see mergeInlinedArrayAllocas in lib/Transforms/IPO/Inliner.cpp). I was surprised when I saw this. :)
Aside: it looks like the discussion on the email thread didn't get mirrored to this review (http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20180212/526068.html + the 2 following comments).
tl;dr: we're wondering whether MSSA should care about these objects as they exist in the lifetime system, or if it should just care about memory locations. In the former case, it seems we'll either have to end up inventing clobbers that don't exist (which is a path full of sadness, apparently), or we'll have to tack on a whole different subsystem that should probably be split out. In the latter case, we move this burden to higher-level passes that know they need to care. I prefer the latter, and I think Danny does, too, but we'd like the feedback of hal and/or philip before committing to that.
More information about the llvm-commits