[PATCH] D94002: [LangRef] Make lifetime intrinsic's semantics consistent with StackColoring's comment
Juneyoung Lee via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 23 08:43:22 PST 2021
aqjune updated this revision to Diff 325805.
aqjune added a comment.
I updated the text to reflect the consensus made in llvm-dev discussion so far.
If lifetime.start/end isn't used with a stack pointer with zero offset, it is equivalent to memset(poison).
Also, the paragraph that describes the disjointness of addresses is removed.
Calling lifetime.start twice on an alive alloca is also updated to memset(poison).
It isn't defined as UB because I couldn't find any LLVM code or comments saying that lifetime may raise UB.
Another choice is to define it as no-op, but https://godbolt.org/z/TqoeqG requires it.
Memory accesses on a dead object should be UB because the comment at StackColoring.cpp specifies that.
I did not mention anything about the size argument of lifetime.start/end because it wasn't clear to me how the argument was used.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D94002/new/
https://reviews.llvm.org/D94002
Files:
llvm/docs/LangRef.rst
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D94002.325805.patch
Type: text/x-patch
Size: 4390 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210223/f3294ba4/attachment.bin>
More information about the llvm-commits
mailing list