[PATCH] D98112: [LangRef] mention that the lifetime intrinsics' description in LangRef isn't everything

Ralf via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Mar 6 04:31:04 PST 2021


RalfJung added inline comments.


================
Comment at: llvm/docs/LangRef.rst:18127
+the stack coloring algorithm cannot conclude that ``ptr`` is a stack-allocated
+object.
 
----------------
aqjune wrote:
> RalfJung wrote:
> > Would this alternatively be captured by saying that if ptr is a stack-allocated object, then it *might* have the effect of the original `alloca` creating a dead object and this intrinsic making it live (but non-deterministically, not doing this and just replacing the content by poison is also allowed)?
> It will help remove the mentioning of dependency on stack coloring's implementation, but due to practical reasons I think the current text is better.
> 
> It's because the current text reveals the problem of the status quo: alloca's lifetime depends on the stack coloring's implementation.
> I think this mentioning will help people in the future raise questions about removal of this dependency, if lucky enough. Since this isn't a small problem, fully resolving this would require a dedicated team... I don't know.
> 
> Also, personally I prefer being simple here; nondeterminism is a hard concept and there's an opportunity that it can be interpreted differently by readers.
As you wish. But then I'd probably weaken the statement earlier in this text where it says that 

```
If ``ptr`` is a stack-allocated object and it points to the first byte of
the object, the object is initially marked as dead.
After '``llvm.lifetime.start``', the stack object that ``ptr`` points is marked
as alive and has an uninitialized value.
```
Currently, this statement is first made only to be later partially revised; that seems confusing.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D98112



More information about the llvm-commits mailing list