pub enum InlineFailure {
Recursive,
Mismatch,
ByValue,
VaStart,
ComputedGoto,
Setjmp,
MemorySsa,
Pack,
Alloca,
TooLarge,
}Expand description
Why a call to an always_inline function was not inlined.
Variants§
Recursive
The function reaches itself through calls of this kind.
Mismatch
The arguments or the results of the call are not what the body takes and gives.
ByValue
A parameter is a structure passed by value, whose copy the call is what makes.
VaStart
The body starts a variable argument list of its own, which only a frame of its own has.
ComputedGoto
The body jumps to a label by its address, or a static table holds one of its labels, either of which would still name the original body from the copy.
Setjmp
The body calls setjmp, whose frame would become the caller’s.
MemorySsa
The IR has memory SSA in it, which this step runs before.
Pack
A va_arg_pack whose arguments cannot be forwarded to where it is.
Alloca
The body grows the stack by an amount only known when it runs, which in a loop in the caller would grow it once for every time round. Only a hint is refused for this.
TooLarge
The body is larger than a callee declared inline is allowed to be.