callee-has-loopThe callee's loop body is over the inline size budget
Reported by --explain after a verdict.
mettle explain callee-has-loop
A small loop-bearing callee inlines, because that is what exposes its loop to values the caller already holds in registers. Past the budget the call is noise next to the loop it reaches, and the caller growth is not repaid. The budget doubles at sites two or more loops deep.
@inline inlines it anyway. Where the loop is hot, look at its own remark first: that is usually where the time goes.
Related
- callee-no-bodyThe callee has no body to inline
- callee-noinlineThe callee is marked @noinline
- callee-denylistedThe callee is on the compiler's inline denylist
- too-many-parametersThe callee takes more than 16 parameters
- callee-parameter-namesThe callee's parameter names are unavailable
- callee-over-budgetThe callee's body is over the inline size budget
- callee-call-countThe callee makes more calls than the inline call-count budget allows
- callee-inline-asmThe callee contains inline assembly