You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Define @llvm.ret.popless intrinsic, a ret that doesn't restore SP.
Marks the following ret instruction as a "popless" return, one that does
not not restore SP to its function-entry value (i.e., does not
deallocate the stack frame), allowing allocations made in the function
to be accessible by the caller.
The function must be annotated with an appropriate target-specific
calling convention, so the caller can generate stack accesses
accordingly, generally by treating the call as a variably-sized alloca,
so using FP-based addressing for its own frame rather than relying on
statically known SP offsets.
The single argument is forwarded as a return value, that must then be
used as the operand to the following ret instruction.
Calls to this intrinsic need to be musttail, but don't follow the other
ABI requirements for musttail calls, since this is really annotating the
ret.
This doesn't implement any lowering, but only adds the intrinsic
definition, basic verifier checks, and an inliner opt-out.
rdar://135984630
0 commit comments