diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -9369,6 +9369,12 @@ pointer may not be unique. The order in which memory is allocated (ie., which way the stack grows) is not specified. +If the returned pointer is used by :ref:`llvm.lifetime.start `, +the returned object is initially dead. +See :ref:`llvm.lifetime.start ` and +:ref:`llvm.lifetime.end ` for the precise semantics of +lifetime-manipulating intrinsics. + Example: """""""" @@ -18114,6 +18120,11 @@ byte of the object or it is a stack object that is already alive, it simply fills all bytes of the object with ``poison``. +Detection of the underlying object of ``ptr`` depends on the pattern matching +in the stack coloring algorithm that is used in the optimization pipeline. +``ptr`` is conservatively considered as a non-stack-allocated object if +the stack coloring algorithm cannot conclude that ``ptr`` is a stack-allocated +object. .. _int_lifeend: @@ -18151,6 +18162,11 @@ byte of the object, it is equivalent to simply filling all bytes of the object with ``poison``. +Detection of the underlying object of ``ptr`` depends on the pattern matching +in the stack coloring algorithm that is used in the optimization pipeline. +``ptr`` is conservatively considered as a non-stack-allocated object if +the stack coloring algorithm cannot conclude that ``ptr`` is a stack-allocated +object. '``llvm.invariant.start``' Intrinsic ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^