Formal Performance and Compile Time Guarantees for Compiler Optimization Heuristics
Nikil V. Shyamsunder
Abstract
Modern optimizing compilers rely on heuristic search algorithms for NP-hard optimization problems, which can result in poor generated-code performance and long or unpredictable compile times. These are considered bugs by users, but verified compilers rarely reason beyond semantic preservation. We propose verifying performance and compile time properties of compiler passes. As a proof-of-concept, we formulate inline expansion using a cost model estimating instruction-cache performance. We mechanize this in Rocq, prove semantic preservation of the inlining transformation, and verify the algorithm's monotone improvement, convergence-time bound, and performance bounds for intermediate and final solutions.
Create a lesson
Related papers
Behavioral Analysis of Timed Actors using Syntactic Slice Equivalence
Ali Ataollahi, Fatemeh Ghassemi, Eduard Kamburjan et al.
Exo-GPU: Safe, Imperative, User-schedulable Programming for Tensor Cores
David Zhao Akeley, Yuka Ikarashi, Jonathan Ragan-Kelley
Revisiting Soundness for Occurrence Typing, Semantically
Yuquan Fu, Carlo Angiuli, Sam Tobin-Hochstadt
Opportunistic ZGC: Leveraging Idle Cores for More Effective Concurrent Garbage Collection
Jacob Malloy, Michael R. Jantz, Terry Jones
QuickerChick
Ivan Mladenov, Alperen Keles, Leonidas Lampropoulos
Expressing NumPy Broadcasting via Verb Rank in J
Marcin Żołek