Formal Verification of an SSA-Based Middle-End for CompCert

  • Authors:
  • Gilles Barthe;Delphine Demange;David Pichardie

  • Affiliations:
  • IMDEA Software Institute;IRISA -- University of Rennes 1/Inria;IRISA -- ENS Rennes/Inria

  • Venue:
  • ACM Transactions on Programming Languages and Systems (TOPLAS)
  • Year:
  • 2014

Quantified Score

Hi-index 0.00

Visualization

Abstract

CompCert is a formally verified compiler that generates compact and efficient code for a large subset of the C language. However, CompCert foregoes using SSA, an intermediate representation employed by many compilers that enables writing simpler, faster optimizers. In fact, it has remained an open problem to verify formally an SSA-based compiler. We report on a formally verified, SSA-based middle-end for CompCert. In addition to providing a formally verified SSA-based middle-end, we address two problems raised by Leroy in [2009]: giving an intuitive formal semantics to SSA, and leveraging its global properties to reason locally about program optimizations.