The bibliographic entry was discovered and compiled by a machine, and published without a person checking it against the publication. The publication itself is the authors' own work — this badge says nothing about it.

SSA Translation Is an Abstract Interpretation

The work

AuthorsMatthieu Lemerre
Editors
Typearticle
Year2023
Citekeylemerre2023ssa

Where it appeared

Published inProceedings of the ACM on Programming Languages
PublisherAssociation for Computing Machinery (ACM)
Volume7
IssuePOPL
Pages1895--1924

Identifiers

DOI10.1145/3571258
ISSN2475-1421

From crossref.

Abstract

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.

How it got here

How it got hereagent via crossref
Added2026-10-26 15:27 UTC
Not denied bya person 2026-10-29 17:12 UTC

Cite it as

@article{lemerre2023ssa,
  title        = {SSA Translation Is an Abstract Interpretation},
  author       = {Matthieu Lemerre},
  year         = {2023},
  journal      = {Proceedings of the ACM on Programming Languages},
  publisher    = {Association for Computing Machinery (ACM)},
  volume       = {7},
  number       = {POPL},
  pages        = {1895--1924},
  issn         = {2475-1421},
  doi          = {10.1145/3571258},
}

This record lives at https://refs.drheap.org/lemerre2023ssa/ and will keep doing so.