tracing-inlining-decisions

InspectableToolchainInlining decisions for calls and optimize your code's performance with this handy tool.

Updated Aug 27, 2026
One-click install
npx skills add https://github.com/antonykamp/cc-truffle-performance-plugin --skill tracing-inlining-decisions
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: tracing-inlining-decisions
Source: https://github.com/antonykamp/cc-truffle-performance-plugin/tree/main/skills/tracing-inlining-decisions
Command: npx skills add https://github.com/antonykamp/cc-truffle-performance-plugin --skill tracing-inlining-decisions

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Shows inlining decisions during compilation with call tree structure and reasons. Essential for understanding why calls aren't being optimized.

Core Features & Use Cases

  • Verify critical calls are inlined
  • Understand why inlining failed (e.g., RecursiveInlining, budgetExhausted, TruffleBoundary)
  • Debug and optimize method sizes for better compilation performance

Quick Start

Run the launcher with --experimental-options --engine.TraceInlining to emit inlining decisions, optionally adding --engine.TraceCompilation to view the full call tree.

Frequently Asked Questions about tracing-inlining-decisions

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I verify inlining decisions during Truffle compilation?

Verify inlining decisions by running the launcher with --experimental-options --engine.TraceInlining to emit call-tree structures showing which calls are inlined and why others remain not inlined.

Why does Truffle compilation fail to inline recursive calls?

Truffle compilation fails to inline recursive calls due to reason codes like RecursiveInlining, budgetExhausted, or TruffleBoundary, which are exposed in the call-tree trace to explain specific inlining failures.

How do I inspect hot paths and boundary cases in Truffle compilation traces?

Inspect hot paths and boundary cases by applying tracing during Truffle language performance analysis, using --engine.TraceInlining alongside --engine.TraceCompilation to view the full call tree and reason codes.

What does the budgetExhausted reason code mean in Truffle inlining traces?

The budgetExhausted reason code in Truffle inlining traces indicates that the compilation budget was depleted, preventing further call inlining and leaving certain methods not inlined within the call tree.

Can I debug method sizes for better compilation performance using inlining traces?

Debug method sizes for better compilation performance by analyzing inlining traces to understand why inlining failed, verifying critical calls, and adjusting trivialSize thresholds to optimize method compilation.

Do I need engine.TraceCompilation to view the full call tree during inlining analysis?

engine.TraceCompilation is optional but recommended to view the full call tree during inlining analysis, while --engine.TraceInlining is required to emit the actual inlining decisions and reason codes.