2015
DOI: 10.1007/978-3-662-46663-6_12
|View full text |Cite
|
Sign up to set email alerts
|

Verifying Fast and Sparse SSA-Based Optimizations in Coq

Abstract: The Static Single Assignment (SSA) form is a predominant technology in modern compilers, enabling powerful and fast program optimizations. Despite its great success in the implementation of production compilers, it is only very recently that this technique has been introduced in verified compilers. As of today, few evidence exist on that, in this context, it also allows faster and simpler optimizations. This work builds on the CompCertSSA verified compiler (an SSA branch of the verified CompCert C compiler). W… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
13
0

Year Published

2015
2015
2023
2023

Publication Types

Select...
3
2
2

Relationship

3
4

Authors

Journals

citations
Cited by 14 publications
(13 citation statements)
references
References 22 publications
0
13
0
Order By: Relevance
“…We performed the same adaptations as in I-CHK. I-AC This is the implementation of the AC algorithm initially available in CompCertSSA [2,7]. The implementation uses a classical Kildall workset algorithm for solving the data-flow equations, and its correctness is proved directly (no a posteriori validator).…”
Section: Resultsmentioning
confidence: 99%
See 1 more Smart Citation
“…We performed the same adaptations as in I-CHK. I-AC This is the implementation of the AC algorithm initially available in CompCertSSA [2,7]. The implementation uses a classical Kildall workset algorithm for solving the data-flow equations, and its correctness is proved directly (no a posteriori validator).…”
Section: Resultsmentioning
confidence: 99%
“…It discovers equivalence classes between program variables, where variables belonging to the same class are supposed to evaluate to the same value. Its implementation, presented in [7], closely follows the choices made in production compilers, and performs some dominance test requests to make sure that the chosen representative of a variable class dominates the definition point of that variable. To date, this dominance test was implemented (and proved directly) with a simple Allen and Cocke algorithm, using a Kildall workset algorithm, thus impacting the performance of our middle-end.…”
Section: Introduction and Related Workmentioning
confidence: 99%
“…linear scan, to be verified on top of the intricate liveness analysis theorem. There has also been much interest in formally verified SSA-form middle ends: the CompCertSSA project (Barthe et al 2014) extended CompCert with a formally specified SSA form middle-end, and also investigated formal verification of optimisations in their semantics (Demange et al 2015). Similarly, SSA-based optimisations were verified in the Vellvm project (Zhao et al 2013).…”
Section: Detailed Comparison With Previous Compilermentioning
confidence: 99%
“…Apart from the generation itself, some progress has also been made on the formalization of the useful invariants and properties of SSA that ease the reasoning when it comes to proving optimizations. For instance, [1,11,23] formalize the strictness semantic invariant, basic equational reasoning and dominance-region reasoning. These are semantic tools that allow proving formally the correctness of Sparse Conditional Constant Propagation and Common Subexpression Elimination based on Global-Value-Numbering [11], or Copy Propagation and micro memory optimizations [23].…”
Section: Introductionmentioning
confidence: 99%