[LangRef] Clarify Varargs forwarding for musttail calls.
authorFlorian Hahn <florian.hahn@arm.com>
Wed, 17 Jan 2018 23:29:25 +0000 (23:29 +0000)
committerFlorian Hahn <florian.hahn@arm.com>
Wed, 17 Jan 2018 23:29:25 +0000 (23:29 +0000)
This clarification was suggested by @efriedma in D41335, which uses this
behavior to inline musttail calls with varargs.

Reviewers: hfinkel, efriedma, rnk

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D41861

llvm-svn: 322786

llvm/docs/LangRef.rst

index 569e4a9..3aeffc5 100644 (file)
@@ -9033,9 +9033,11 @@ This instruction requires several arguments:
    #. Arguments with the :ref:`inalloca <attr_inalloca>` attribute are
       forwarded in place.
 
-   Both markers imply that the callee does not access allocas or varargs from
-   the caller. Calls marked ``musttail`` must obey the following additional
-   rules:
+   Both markers imply that the callee does not access allocas from the caller.
+   The ``tail`` marker additionally implies that the callee does not access
+   varargs from the caller, while ``musttail`` implies that varargs from the
+   caller are passed to the callee. Calls marked ``musttail`` must obey the
+   following additional  rules:
 
    - The call must immediately precede a :ref:`ret <i_ret>` instruction,
      or a pointer bitcast followed by a ret instruction.