2015
DOI: 10.1145/2813885.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...
3
1
1

Citation Types

0
29
0

Year Published

2017
2017
2020
2020

Publication Types

Select...
4
1
1

Relationship

1
5

Authors

Journals

citations
Cited by 30 publications
(29 citation statements)
references
References 51 publications
0
29
0
Order By: Relevance
“…We apply the techniques from Section 3 to three case studies: (i) verification of invertibility conditions from Niemetz et al [19]; (ii) verification of compiler optimizations as generated by Alive [17]; and (iii) verification of rewrite rules that are used in SMT solvers. For these case studies, we consider a set of verification conditions that originally use fixed-size bit-vectors, and exclude formulas involving multiple bit-widths.…”
Section: Case Studiesmentioning
confidence: 99%
See 2 more Smart Citations
“…We apply the techniques from Section 3 to three case studies: (i) verification of invertibility conditions from Niemetz et al [19]; (ii) verification of compiler optimizations as generated by Alive [17]; and (iii) verification of rewrite rules that are used in SMT solvers. For these case studies, we consider a set of verification conditions that originally use fixed-size bit-vectors, and exclude formulas involving multiple bit-widths.…”
Section: Case Studiesmentioning
confidence: 99%
“…Lopes et al [17] introduces Alive, a tool for proving the correctness of compiler peephole optimizations. Alive has a high-level language for specifying optimizations.…”
Section: Verifying Alive Optimizationsmentioning
confidence: 99%
See 1 more Smart Citation
“…In LLVM, peephole optimizations find code fragments in an input program that match a pattern, and replace them with an equivalent set of instructions. They are also a persistent source of LLVM bugs [25,30,51].…”
Section: Introductionmentioning
confidence: 99%
“…We have addressed the problem of peephole optimization bugs with Alive, a domain-specific language for specifying and verifying peephole optimizations in LLVM [30].…”
Section: Introductionmentioning
confidence: 99%