[PATCH] D93376: [LangRef] Clarify the semantics of lifetime intrinsics

Juneyoung Lee via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 17 23:34:15 PST 2020


aqjune added a comment.

BTW, the unit failures are due to two reasons:
(1) Some tests simply use `lifetime.start(undef)`/`end(undef)`, but they can be fixed. There are only 14 such tests.
(2) Optimizations can transform lifetime's argument, such as bitcast -> gep (as @nikic said) or merging two lifetime calls in if-else branches and introducing phi.
I'll change the syntactic constraint to be more generous. Syntactic constraint is needed anyway, otherwise we really don't know which object is passed to `lifetime.start`. Assume that a pointer p is passed to `call f(p)`, which is doing `lifetime.start(p)`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D93376/new/

https://reviews.llvm.org/D93376



More information about the llvm-commits mailing list