Affiliation:
1. Microsoft Research, UK
2. Rutgers University
3. University of Utah
Abstract
Compilers should not miscompile. Peephole optimizations, which perform local rewriting of the input program to improve the efficiency of generated code, are a persistent source of compiler bugs. We created Alive, a domain-specific language for writing optimizations and for automatically either proving them correct or else generating counterexamples. Furthermore, Alive can be automatically translated into C++ code that is suitable for inclusion in an LLVM optimization pass. Alive is based on an attempt to balance usability and formal methods; for example, it captures---but largely hides---the detailed semantics of the various kinds of undefined behavior. Alive has found numerous bugs in the LLVM compiler and is being used by LLVM developers.
Publisher
Association for Computing Machinery (ACM)
Cited by
17 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. SIRO: Empowering Version Compatibility in Intermediate Representations via Program Synthesis;Proceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 3;2024-04-27
2. Schematic Program Proofs with Abstract Execution;Journal of Automated Reasoning;2024-03-26
3. Verifying Term Graph Optimizations using Isabelle/HOL;Proceedings of the 12th ACM SIGPLAN International Conference on Certified Programs and Proofs;2023-01-11
4. Formally Verified EVM Block-Optimizations;Computer Aided Verification;2023
5. C Program Partitioning with Fine-Grained Security Constraints and Post-Partition Verification;MILCOM 2022 - 2022 IEEE Military Communications Conference (MILCOM);2022-11-28