Topics / Inlining and devirtualization
Performance topic
Inlining and devirtualization
Let the compiler see through calls: inline hot functions, replace virtual dispatch with static dispatch, and mark final types.
951proven techniques
74pitfalls: tried, then slower
526repositories
5from papers
Examples from real commits
JasonXuDeveloper/Nino
3.5×
Extract loop into a separate non-inlined method to isolate PGO profile for long runs.
proof: commit →
Dao-AILab/flash-attention
2×
Remove runtime branch from TMA load helper to enable inlining and prevent wgmma serialization
proof: commit →
pocl/pocl
2×
Normalize function attributes across all defined functions (strip stack-protector, denormal, strictfp, alwaysinline; unify target-cpu/features) so LLVM's inliner accepts the calls.
proof: commit →
WebKit/WebKit
1.7×
Inline Yarr matcher into DFG/FTL by placing backtracking frame in the outgoing-argument area
proof: commit →
Languages
- C++417
- C207
- Rust132
- Go48
- C#38
- Java25
Hardware
- CPU228
- x86161
- ARM43
- GPU21
- NVIDIA GPU18
Fields
- general370
- compilers195
- data & compression169
- graphics89
- math83
Where these come from
Repositories with the most techniques on this topic in the database:
Shopify/yjit · 14dotnet/runtime · 10k0kubun/llrb · 10PerryTS/perry · 10icedland/iced · 8JasonXuDeveloper/Nino · 8wasmi-labs/wasmi · 8harfbuzz/harfrust · 8blender/cycles · 7v8/v8 · 7
Ask Claude for the full answer
Each technique comes with its bottleneck, measured speedup, trade-offs, conditions and the commit or paper behind it, served to Claude through MCP.
claude mcp add --transport http adtomic https://www.adtomic.co/mcp
Related topics
Lookup tablesCache locality and data reorderingMultithreading and work stealingLoop unrolling and instruction-level parallelismGPU kernel fusion