Mechanised Semantics for Gated Static Single Assignment - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Communication Dans Un Congrès Année : 2023

Mechanised Semantics for Gated Static Single Assignment

Résumé

The Gated Static Single Assignment (GSA) form was proposed by Ottenstein et al. in 1990, as an intermediate representation for implementing advanced static analyses and optimisation passes in compilers. Compared to SSA, GSA records additional data dependencies and provides more context, making optimisations more effective and allowing one to reason about programs as data-flow graphs. Many practical implementations have been proposed that follow, more or less faithfully, Ottenstein et al.’s seminal paper. But many discrepancies remain between these, depending on the kind of dependencies they are supposed to track and to leverage in analyses and code optimisations. In this paper, we present a formal semantics for GSA, mechanised in Coq. In particular, we clarify the nature and the purpose of gates in GSA, and define control-flow insensitive semantics for them. We provide a specification that can be used as a reference description for GSA.We also specify a translation from SSA to GSA and prove that this specification is semantics preserving. We demonstrate that the approach is practical by implementing the specification as a validated translation within the CompCertSSA verified compiler.

Domaines

Informatique

Dates et versions

hal-03899435 , version 1 (14-12-2022)

Licence

Paternité

Identifiants

Citer

Yann Herklotz, Delphine Demange, Sandrine Blazy. Mechanised Semantics for Gated Static Single Assignment. CPP 2023 - 12th ACM SIGPLAN International Conference on Certified Programs and Proofs, Jan 2023, Boston, United States. pp.1-15, ⟨10.1145/3573105.3575681⟩. ⟨hal-03899435⟩
40 Consultations
0 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More