
Trace
Explains compiler optimization failures in Rust code. Surface missed vectorizations, failed inlining, unnecessary bounds checks, and more.
Two Tools, One Workflow
Trace CLI
A Rust performance profiling CLI that collects LLVM optimization remarks and turns them into actionable issues with fix hints at specific source locations.
$ trace build --release
analyzing 142 remark files...
found 23 optimization issues
results written to .trace/VS Code Extension
Surfaces optimization issues directly in your editor with inline diagnostics, hover cards with root cause analysis, and a dedicated tree view panel.
- Inline diagnostics with severity-coded underlines
- Hover cards with impact, root cause, and fixes
- Tree view panel grouping issues by type
- One-command analysis without leaving the editor
What Trace Detects
Trace classifies LLVM optimization remarks into actionable issue types that tell you exactly what the compiler failed to optimize and why.
Missed Vectorization
Loops that could use SIMD but the compiler chose scalar operations instead.
Missed Inlining
Function calls the compiler chose not to inline, adding overhead on hot paths.
Bounds Checks
Array or slice accesses with redundant bounds checking that could be elided.
Aliasing
Pointer aliasing that prevents the compiler from applying optimizations.
Hot-Path Allocation
Heap allocations on performance-critical paths that could be stack-allocated.
Unpredictable Branches
Branch patterns that defeat CPU prediction, causing pipeline stalls.
How It Works
Build with Remarks
trace build compiles your project while capturing LLVM optimization remarks from the compiler.
Classify Issues
The CLI processes remarks into structured issues with types, locations, evidence, and fix hints.
Surface in Editor
The VS Code extension watches .trace/ artifacts and maps issues to inline diagnostics.
Fix & Iterate
Hover cards show root cause analysis and suggested fixes. Re-run to verify improvements.
Stop Guessing, Start Profiling
Trace gives you the compiler's perspective on your code. See exactly which optimizations failed and why — then fix them with confidence.