Relaxing Alias Analysis: Exploring the Unexplored Space
summary
This study instruments LLVM 17.0.6 and SPEC CPU 2017 and shows that removing alias analysis entirely changes final binaries only slightly on average, but only ~3% critical queries actually alter generated code out of ~3.5M precise queries; randomized relaxations find up to 21% execution-time improvements and 39% binary-size reductions in isolated cases, tracing effects to missed dead‑store elimination and altered code layout.
AI-written summary · about
chapters (16)
- 0:00Relaxing alias analysis
- 1:13Why compilers need alias analysis
- 2:56Precise alias analysis improves binaries
- 4:40Relaxing alias analysis for soundness
- 6:07Research questions on aliasing
- 7:12Aliasing impact on performance
- 9:02Critical aliasing queries
- 11:08Randomized alias analysis
- 13:41Performance anomalies
- 15:06Key findings
- 15:48Precision versus binary quality
- 16:31Compiler research implications
- 17:13Q&A: passes
- 17:58Q&A: algorithms
- 19:04Q&A: architecture dependency
- 19:46Q&A: optimization use
related talks
25mThe Road Not Taken: Exploring Alias Analysis Based Optimizations Missed by the Compiler
24mTowards Understanding the Costs of Avoiding Out-of-Thin-Air Results
22mLinker Relaxation in LLD
21mTowards Compiler-Guided Static Analysis
37mDealing with aliasing using contracts
34mWhat happens to your code when you don't look?
17mUnlocking 15% More Performance: A Case Study in LLVM Optimization for RISC-V
15mNot So Fast: Understanding and Mitigating Negative Impacts of Compiler Optimizations on Code Reuse G
