Skip to Main content Skip to Navigation
Reports

Formal Verification of an SSA-based Middle-end for CompCert

Abstract : CompCert is a formally verified compiler that generates compact and efficient PowerPC, ARM and x86 code for a large and realistic subset of the C language. However, CompCert foregoes using Static Single Assignment (SSA), an intermediate representation that allows for writing simpler and faster optimizers, and that is used by many compilers. In fact, it has remained an open problem to verify formally an SSA-based compiler middle-end. We report on a formally verified, SSA-based, middle-end for CompCert. Our middle-end performs conversion from CompCert intermediate form to SSA form, optimization of SSA programs, including Global Value Numbering, and transforming out of SSA to intermediate form. In addition to provide the first formally verified SSA-based middle-end, we address two problems raised by Leroy in 2009: giving a simple and intuitive formal semantics to SSA, and leveraging the global properties of SSA to reason locally about program optimizations.
Document type :
Reports
Complete list of metadatas

Cited literature [35 references]  Display  Hide  Download

https://hal.inria.fr/inria-00634702
Contributor : Delphine Demange <>
Submitted on : Tuesday, April 2, 2013 - 12:13:53 AM
Last modification on : Friday, July 10, 2020 - 4:17:03 PM
Long-term archiving on: : Sunday, April 2, 2017 - 10:57:49 PM

File

BDPreport.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : inria-00634702, version 3

Citation

Gilles Barthe, Delphine Demange, David Pichardie. Formal Verification of an SSA-based Middle-end for CompCert. [University works] 2011. ⟨inria-00634702v3⟩

Share

Metrics

Record views

1430

Files downloads

902