Dynamic Dispatch of Context-Sensitive Optimizations
summary
Implements a runtime DFA-based context tracking that avoids cloning whole call chains, implemented as an LLVM link-time pass and published with code on Github. Claim is that moving context bookkeeping into a state machine yields much smaller binaries and low overhead: on SPEC CPU2017 and LLVM tests the DFA approach produces binaries about 3x smaller than cloning (cloning adds ~8.5x bytes) while compile-time remains under a minute and actual runs show >3% speed-up in 11 programs.
AI-written summary · about
chapters (11)
- 0:00Intro
- 0:15Interprocedural, context-sensitive analyses
- 0:46Interprocedural, context-sensitive optimizations
- 1:28Inlining
- 2:44Full Cloning
- 4:24Our approach (DFA)
- 4:59DFA - Overview
- 6:35Compile time & binary sizes
- 7:16Running time
- 7:39Scalability
- 8:31Summary
related talks
21mContext Sensitivity without Contexts: A Cut-Shortcut Approach to Fast and Precise(…)
22mRevisiting Dynamic Dispatch for Modern Architectures
16mReconciling Optimization With Secure Compilation
28mReducing Feedback Pollution
01h 07mC++20 Concepts: A Day in the Life
01h 04mJust-in-Time Compilation: The Next Big Thing?
24mTowards Understanding the Costs of Avoiding Out-of-Thin-Air Results
15mDuplo: A Framework for OCaml Post-Link Optimisation
