Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation 2015
DOI: 10.1145/2737924.2737965
|View full text |Cite
|
Sign up to set email alerts
|

Provably correct peephole optimizations with alive

Abstract: Compilers should not miscompile. Our work addresses problems in developing peephole optimizations that perform local rewriting to improve the efficiency of LLVM code. These optimizations are individually difficult to get right, particularly in the presence of undefined behavior; taken together they represent a persistent source of bugs. This paper presents Alive, a domain-specific language for writing optimizations and for automatically either proving them correct or else generating counterexamples. Furthermor… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
34
0

Year Published

2016
2016
2019
2019

Publication Types

Select...
5
1
1

Relationship

2
5

Authors

Journals

citations
Cited by 89 publications
(34 citation statements)
references
References 49 publications
0
34
0
Order By: Relevance
“…In addition, many peephole optimizations can be readily modeled as patterns, and several tools exist for automatic discovery and verification of such patterns [5,10,43]. We intend to exploit these tools to automatically extend the pattern set with these patterns in order to further improve code quality.…”
Section: Discussionmentioning
confidence: 99%
“…In addition, many peephole optimizations can be readily modeled as patterns, and several tools exist for automatic discovery and verification of such patterns [5,10,43]. We intend to exploit these tools to automatically extend the pattern set with these patterns in order to further improve code quality.…”
Section: Discussionmentioning
confidence: 99%
“…They implemented 28 peephole optimizations which required 3.3k lines of code and 6.6k lines of proofs (∼350 LoC each). Even if this is small compared to the size of CompCert, the burden is non-trivial considering that LLVM has more than 1,000 peephole optimizations [12].…”
Section: Compiler Verificationmentioning
confidence: 99%
“…Various frameworks have been proposed to verify optimizations of industrial compilers. Among them, Alive [12] is a tool for verifying peephole optimizations of LLVM that has been successfully adopted by compiler developers. Since it was released, Alive has helped developers find dozens of bugs.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…However, compilers are large code bases and have been shown to have bugs and produce wrong code at times [6,23,26,29,46]. The rest of the paper describes our approach for automatically verifying that the machine code of U satisfies WCFI-RW, thereby removing the compiler from the TCB.…”
Section: Overviewmentioning
confidence: 99%