callee-over-budgetThe callee's body is over the inline size budget
Reported by --explain after a verdict.
mettle explain callee-over-budget
Inlining copies the body into every call site, so a large callee called in ten places makes the program larger and the instruction cache colder. The budget is the line the compiler draws, and --pgo moves that line for callees measured hot.
Fixes
mark the callee @inline to override the budget
compile with --pgo, so a measured-hot callee earns the larger budget on evidence rather than on a decorator
Before printing the @inline advice the report applies it to a scratch copy and re-runs the check, so it never suggests a decorator that a structural guard behind the budget would refuse anyway.
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-call-countThe callee makes more calls than the inline call-count budget allows
- callee-inline-asmThe callee contains inline assembly
- callee-has-loopThe callee's loop body is over the inline size budget