Optimistic and Scalable Global Function Merging
summary
Uses optimistic global function merging that publishes stable, IR‑independent summaries across codegen runs, creates merge candidates per module, and relies on linker ICF to fold duplicates safely. Claims a measured 3.5% code size reduction when combined with a global function outliner and reports an overall 9% build time decrease for end‑to‑end builds. Implements writer/reader artifact pipelines for distributed builds, gives unique names to generated functions to avoid hash collisions, and tolerates stale summaries.
AI-written summary · about
chapters (15)
- 0:00Global Function Merging intro
- 0:47Size optimization strategies
- 1:49Function outliner mechanics
- 2:33Merger mechanics differences
- 3:18Optimistic merging approach
- 4:00Two-phase outliner process
- 6:28Merger integration
- 7:12Stable summaries for merging
- 9:02Real-world size savings
- 9:46Build time impact pipeline
- 11:08Handling stale summaries
- 12:09End-to-end build time
- 12:52Combined impact analysis
- 13:13Conclusion and contributions
- 13:57Q&A
related talks
25mHybrid Execution: Combining Ahead-of-Time and Just-in-Time Compilation
30mOn Automating Hybrid Execution of Ahead-of-Time and Just-in-Time Compiled Code
25mReinventing Rollup
15mNot So Fast: Understanding and Mitigating Negative Impacts of Compiler Optimizations on Code Reuse G
26mAn Analysis of Compiled Code Reusability in Dynamic Compilation
14mAchieving High-Performance the Functional Way - A Functional Pearl on Expressing High...
46mAhead Of Time (AOT) Internals
27mDistributing and Parallelizing Non-canonical Loops
