SSA translation is an abstract interpretation (with appendices) - CEA - Commissariat à l’énergie atomique et aux énergies alternatives Accéder directement au contenu
Article Dans Une Revue Proceedings of the ACM on Programming Languages Année : 2023

SSA translation is an abstract interpretation (with appendices)

Matthieu Lemerre
  • Fonction : Auteur
  • PersonId : 964733

Résumé

Static single assignment (SSA) form is a popular intermediate representation that helps implement useful static analyses, including global value numbering (GVN), sparse dataflow analyses, or SMT-based abstract interpretation or model checking. However, the precision of the SSA translation itself depends on static analyses, and a priori static analysis is even indispensable in the case of low-level input languages like machine code. To solve this chicken-and-egg problem, we propose to turn the SSA translation into a standard static analysis based on abstract interpretation. This allows the SSA translation to be combined with other static analyses in a single pass, taking advantage of the fact that it is more precise to combine analyses than applying passes in sequence. We illustrate the practicality of these results by writing a simple dataflow analysis that performs SSA translation, optimistic global value numbering, sparse conditional constant propagation, and loop-invariant code motion in a single small pass; and by presenting a multi-language static analyzer for both C and machine code that uses the SSA abstract domain as its main intermediate representation.
Fichier principal
Vignette du fichier
2023-popl-full-with-appendices (1).pdf (775.3 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Licence : CC BY SA - Paternité - Partage selon les Conditions Initiales

Dates et versions

cea-03849637 , version 1 (12-11-2022)
cea-03849637 , version 2 (26-02-2024)

Identifiants

Citer

Matthieu Lemerre. SSA translation is an abstract interpretation (with appendices). Proceedings of the ACM on Programming Languages, 2023, POPL 2023 - the 50th ACM SIGPLAN Symposium on Principles of Programming Languages, 7, pp.65. ⟨10.1145/3571258⟩. ⟨cea-03849637v2⟩
73 Consultations
251 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More