A formally verified SSA-based compiler middle-end - Inria - Institut national de recherche en sciences et technologies du numérique
Rapport (Rapport De Recherche) Année : 2011

A formally verified SSA-based compiler middle-end

Résumé

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 is used by many compilers. In fact, it has remained an open problem to verify formally a 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 [13]: giving a simple and intuitive formal semantics to SSA, and leveraging the global properties of SSA to reason locally about program optimizations.

Domaines

Informatique
Fichier principal
Vignette du fichier
report.pdf (449.23 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)

Dates et versions

inria-00634702 , version 1 (22-10-2011)
inria-00634702 , version 2 (10-01-2012)
inria-00634702 , version 3 (02-04-2013)

Identifiants

  • HAL Id : inria-00634702 , version 1

Citer

Gilles Barthe, Delphine Demange, David Pichardie. A formally verified SSA-based compiler middle-end. [Research Report] 2011. ⟨inria-00634702v1⟩
1014 Consultations
717 Téléchargements

Partager

More