Locknote: How Badly Do We Want Correct Compilers?
summary
Compiler testing work uses differential fuzzing and program synthesis to find and fix real miscompilations, reporting hundreds of bugs and shifting compiler economics. Tools include Csmith for randomized C differential testing, YARPGen for loop- and stencil-focused fuzzing that finds wrong‑code and crash bugs (dozens to hundreds per tool), and a synthesis/generalization pipeline with Alive2 proofs to auto‑generate correct peephole optimizations. Surprising failures include volatile loads eliminated and long‑running GCC mistakes that silently change program results.
AI-written summary · about
chapters (10)
- 0:00Compiler correctness challenges
- 1:28Compiler bugs and impact
- 6:00Correct compilers and semantics
- 8:45Logic errors in compilers
- 11:11Want correct compilers?
- 14:00Economics of compiler dev
- 17:12Fuzzing compilers
- 24:58Expressive code generation
- 32:16Auto-generating optimizations
- 49:25Q&A
related talks
22mBoosting Compiler Testing by Injecting Real-World Code
14mFinding Compiler Bugs through Cross-Language Code Generator and Differential Testing
15mInterleaving Large Language Models for Compiler Testing
17mFuzzing Loop Optimizations in Compilers for C++ and Data-Parallel Languages
01h 04mCompiler Bugs And Bug Compilers
12mRandom Testing for C and C++ Compilers with YARPGen
53mFrom Within: Compiler Testing and Validation via Compilers
59mCompilers can be surprising
