mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
Clarify how musttail can be used to create forwarding thunks
llvm-svn: 361590
This commit is contained in:
parent
716ccdb957
commit
77d428497c
@ -10006,12 +10006,16 @@ This instruction requires several arguments:
|
||||
recursive cycle in the call graph.
|
||||
#. Arguments with the :ref:`inalloca <attr_inalloca>` attribute are
|
||||
forwarded in place.
|
||||
#. If the musttail call appears in a function with the ``"thunk"`` attribute
|
||||
and the caller and callee both have varargs, than any unprototyped
|
||||
arguments in register or memory are forwarded to the callee. Similarly,
|
||||
the return value of the callee is returned the the caller's caller, even
|
||||
if a void return type is in use.
|
||||
|
||||
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:
|
||||
varargs from the caller. 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.
|
||||
|
Loading…
Reference in New Issue
Block a user