Formally Verifying Optimizations with Block Simulations
summary
Framework implements block-level forward simulations inside CompCert and proves validators in the Coq proof assistant that check concrete morphisms between CFGs produced by optimizers. It co-designs untrusted optimizations (enhanced superblock scheduler, Lazy Code Motion, Strength Reduction, Dead Code Elimination, Constant Propagation) to emit invariants used by tiny symbolic validators. Implementation validates RTL→BTL→RTL passes, ships artifacts, and reports runtime results that shrink but do not yet eliminate the gap with gcc -O1.
AI-written summary · about
chapters (7)
- 0:00Introduction
- 1:10COQ proof and compiler backend
- 3:06BTL for loop optimizations
- 6:28Translation validation with BTL
- 9:58Register allocation demo
- 13:12Performance vs GCC
- 14:58Q&A
related talks
19mFormally Verified Superblock Scheduling
23mFormally Verified Speculation and Deoptimization in a JIT Compiler
50mCompCert: a journey through the landscape of mechanized semantics for verified co...
28mMemory simulations, security and optimization in a verified compiler
29mTowards Formally Verified Just-In-Time Compilation
22mHyperblock Scheduling for Verified High-Level Synthesis
15mCompiling with Continuations, Correctly
19mFully Verified Instruction Scheduling
