SSA Translation Is an Abstract Interpretation

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 dep...

Full description

Saved in:
Bibliographic Details
Published in:Proceedings of ACM on programming languages Vol. 7; no. POPL; pp. 1895 - 1924
Main Author: Lemerre, Matthieu
Format: Journal Article
Language:English
Published: New York, NY, USA ACM 09.01.2023
Series:POPL 2023 - the 50th ACM SIGPLAN Symposium on Principles of Programming Languages
Subjects:
ISSN:2475-1421, 2475-1421
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
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.
AbstractList 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.
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.
ArticleNumber 65
Author Lemerre, Matthieu
Author_xml – sequence: 1
  givenname: Matthieu
  orcidid: 0000-0002-1081-0467
  surname: Lemerre
  fullname: Lemerre, Matthieu
  email: matthieu.lemerre@cea.fr
  organization: Université Paris-Saclay - CEA LIST, France
BackLink https://cea.hal.science/cea-03849637$$DView record in HAL
BookMark eNpl0M1LwzAUAPAgE5xzePfUm3io5jVJkxzLcK5Q8LB5Dq9pipWuHUkR_O-tdhPR03vwfryvSzLr-s4Rcg30HoCLByYkJEKdkXnCpYiBJzD7lV-QZQhvlFLQjCum5yTebrNo57ELLQ5N30V5iLCLsjIMHu0Q5d3g_MG74bt6Rc5rbINbHuOCvKwfd6tNXDw_5ausiJEBDHHptJVWgBNcpRVnQtEqBVkqWSZS1EogK3WVaucAdIq1BFsC2NrxSlAukS3I3dT3FVtz8M0e_YfpsTGbrDDWoaFMcZ0y-Z6MNp6s9X0I3tXGNtO24wVNa4Car9eY42tGf_vHnwb8lzeTRLv_QafiJ3VoadE
CitedBy_id crossref_primary_10_1007_s10703_024_00456_z
crossref_primary_10_1145_3729298
crossref_primary_10_1002_spe_70014
crossref_primary_10_1145_3656392
crossref_primary_10_1145_3571258
Cites_doi 10.1145/2579080
10.1145/3434304
10.1145/512950.512973
10.1007/s10703-021-00366-4
10.1145/3571258
10.1007/978-3-030-41600-3_1
10.1145/3178372.3179503
10.1007/978-3-319-48989-6_15
10.1007/BFb0039704
10.1007/978-3-540-93900-9_19
10.1145/2103656.2103709
10.1145/1516507.1516510
10.1145/360933.360975
10.1145/360248.360252
10.1007/3-540-48294-6_15
10.1007/978-3-030-94583-1_10
10.1145/115372.115320
10.1007/978-3-642-14052-5_26
10.1007/978-3-540-24622-0_21
10.1145/103135.103136
10.1007/978-3-540-30579-8_11
10.1007/978-3-642-37051-9_6
10.1145/503272.503298
10.1007/978-3-319-52234-0_7
10.29007/dc9b
10.1007/978-3-642-54807-9_2
10.1145/278283.278285
10.1145/1863523.1863539
10.1145/1993498.1993532
10.1145/512927.512945
10.1145/99583.99594
10.1109/RTAS52030.2021.00011
10.1007/978-3-662-48288-9_9
10.1016/0022-0000(86)90031-0
10.1007/978-3-030-94583-1_11
10.1007/978-3-662-49122-5_4
10.1007/978-3-540-27864-1_17
10.1007/11609773_23
10.1145/202529.202532
10.1145/567752.567778
10.1007/3-540-46423-9_8
10.1145/201059.201061
10.1007/978-3-540-24730-2_15
10.1016/j.entcs.2012.11.003
10.1145/2892208.2892211
10.1016/S0022-0000(75)80056-0
10.1145/199448.199464
10.1007/3-540-36377-7_5
10.1145/503272.503290
10.1145/73560.73561
10.1016/j.ipl.2004.10.015
10.1145/73560.73562
10.1145/2038642.2038662
10.3233/FI-1996-263401
10.1016/S0304-3975(00)00313-3
10.1145/3554341
10.1145/202530.202534
10.1017/CBO9780511811449
10.1145/197320.197331
10.1137/0211007
10.1007/978-3-540-77505-8_23
10.1007/978-3-319-21690-4_20
10.1007/978-3-642-18275-4_6
10.1145/3316482.3326354
ContentType Journal Article
Copyright Owner/Author
Distributed under a Creative Commons Attribution 4.0 International License
Copyright_xml – notice: Owner/Author
– notice: Distributed under a Creative Commons Attribution 4.0 International License
DBID AAYXX
CITATION
1XC
VOOES
DOI 10.1145/3571258
DatabaseName CrossRef
Hyper Article en Ligne (HAL)
Hyper Article en Ligne (HAL) (Open Access)
DatabaseTitle CrossRef
DatabaseTitleList CrossRef


DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 1924
ExternalDocumentID oai:HAL:cea-03849637v2
10_1145_3571258
3571258
GroupedDBID AAKMM
AAYFX
ACM
ADPZR
AIKLT
AKRVB
ALMA_UNASSIGNED_HOLDINGS
GUFHI
LHSKQ
M~E
OK1
ROL
AAYXX
AEFXT
AEJOY
CITATION
1XC
EBS
VOOES
ID FETCH-LOGICAL-a311t-be9c7c51e5486d43580d617b87b275f85a3b9d69ee1196af71cb11cfe4d5047a3
ISICitedReferencesCount 6
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000910847500065&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 2475-1421
IngestDate Tue Oct 14 20:39:31 EDT 2025
Sat Nov 29 07:54:30 EST 2025
Tue Nov 18 20:44:38 EST 2025
Mon Mar 17 16:30:35 EDT 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue POPL
Keywords Static Single Assignment (SSA)
Cyclic term graph
Abstract interpretation
Theory of computation → Program analysis
Formal software verification
CCS Concepts: • Software and its engineering → Compilers
Abstraction
Program verification
Equational logic and rewriting Static Single Assignment (SSA)
Language English
License This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Distributed under a Creative Commons Attribution 4.0 International License: http://creativecommons.org/licenses/by/4.0
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-a311t-be9c7c51e5486d43580d617b87b275f85a3b9d69ee1196af71cb11cfe4d5047a3
ORCID 0000-0002-1081-0467
OpenAccessLink https://cea.hal.science/cea-03849637
PageCount 30
ParticipantIDs hal_primary_oai_HAL_cea_03849637v2
crossref_citationtrail_10_1145_3571258
crossref_primary_10_1145_3571258
acm_primary_3571258
PublicationCentury 2000
PublicationDate 2023-01-09
PublicationDateYYYYMMDD 2023-01-09
PublicationDate_xml – month: 01
  year: 2023
  text: 2023-01-09
  day: 09
PublicationDecade 2020
PublicationPlace New York, NY, USA
PublicationPlace_xml – name: New York, NY, USA
PublicationSeriesTitle POPL 2023 - the 50th ACM SIGPLAN Symposium on Principles of Programming Languages
PublicationTitle Proceedings of ACM on programming languages
PublicationTitleAbbrev ACM PACMPL
PublicationYear 2023
Publisher ACM
Publisher_xml – name: ACM
References Zena M Ariola and Jan Willem Klop. 1996. Equational term graph rewriting. Fundamenta Informaticae, 26, 3, 4 (1996), 207–240. https://doi.org/10.3233/FI-1996-263401 10.3233/FI-1996-263401
Gary A Kildall. 1973. A unified approach to global program optimization. In 1st annual ACM SIGACT-SIGPLAN Symposium on Principles of programming languages (POPL 1973). https://doi.org/10.1145/512927.512945 10.1145/512927.512945
François Bourdoncle. 1993. Efficient chaotic iteration strategies with widenings. In Formal Methods in Programming and their Applications. 128–141. https://doi.org/10.1007/BFb0039704 10.1007/BFb0039704
Patrick Cousot. 1977. Asynchronous iterative methods for solving a fixed point system of monotone equations in a complete lattice. Laboratoire IMAG, Université scientifique et médicale de Grenoble, Grenoble, France. https://www.di.ens.fr/~cousot/publications.www/Cousot-IMAG-RR88-Sep-1977.pdf
Patrick Cousot. 2002. Constructive design of a hierarchy of semantics of a transition system by abstract interpretation. Theor. Comput. Sci., 277, 1-2 (2002), 47–103. https://doi.org/10.1016/S0304-3975(00)00313-3 10.1016/S0304-3975(00)00313-3
Benjamin Farinier, Robin David, Sébastien Bardin, and Matthieu Lemerre. 2018. Arrays Made Simpler: An Efficient, Scalable and Thorough Preprocessing. In 22nd International Conference on Logic for Programming, Artificial Intelligence and Reasoning, Gilles Barthe, Geoff Sutcliffe, and Margus Veanes (Eds.) (EPiC Series in Computing, Vol. 57). EasyChair, 363–380. https://doi.org/10.29007/dc9b 10.29007/dc9b
Patrick Cousot. 1978. Méthodes itératives de construction et d’approximation de points fixes d’opérateurs monotones sur un treillis, analyse sémantique de programmes (in French). Ph.D. Dissertation. Université Joseph Fourier. Grenoble, France. https://www.di.ens.fr/~cousot/publications.www/CousotTheseEsSciences1978.pdf
Thomas Reinbacher and Jörg Brauer. 2011. Precise control flow reconstruction using boolean logic. In 11th International Conference on Embedded Software, Samarjit Chakraborty, Ahmed Jerraya, Sanjoy K. Baruah, and Sebastian Fischmeister (Eds.) (EMSOFT 2011). ACM, 117–126. https://doi.org/10.1145/2038642.2038662 10.1145/2038642.2038662
Bor-Yuh Evan Chang and Xavier Rival. 2013. Modular Construction of Shape-Numeric Analyzers. In Festschrift for Dave Schmidt, Anindya Banerjee, Olivier Danvy, Kyung-Goo Doh, and John Hatcliff (Eds.) (EPTCS, Vol. 129). https://doi.org/10.48550/arXiv.1309.5138
Greg Nelson. 1980. Techniques for program verification. Ph.D. Dissertation. Stanford University, CA, USA.
Julien Henry, David Monniaux, and Matthieu Moy. 2012. PAGAI: a path sensitive static analyzer. In Tools for Automatic Program Analysis (TAPAS), Bertrand Jeannet (Ed.). https://doi.org/10.1016/j.entcs.2012.11.003 10.1016/j.entcs.2012.11.003
Gilles Barthe, Delphine Demange, and David Pichardie. 2014. Formal Verification of an SSA-Based Middle-End for CompCert. ACM Trans. Program. Lang. Syst., 36, 1 (2014), 4:1–4:35. https://doi.org/10.1145/2579080 10.1145/2579080
Edsger W. Dijkstra. 1975. Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM, 18, 8 (1975), aug, 453–457. https://doi.org/10.1145/360933.360975 10.1145/360933.360975
Olivier Nicole, Matthieu Lemerre, and Xavier Rival. 2021. Binsec/Codex, an abstract interpreter to verify safety and security properties of systems code. https://binsec.github.io/assets/publications/papers/2021-rtas-technical-report-analysis.pdf
Matthieu Journault, Antoine Miné, Raphaël Monat, and Abdelraouf Ouadjaout. 2019. Combinations of Reusable Abstract Domains for a Multilingual Static Analyzer. In 11th International Conference on Verified Software Theories, Tools, and Experiments - Revised Selected Papers, Supratik Chakraborty and Jorge A. Navas (Eds.) (Lecture Notes in Computer Science, Vol. 12031). Springer, 1–18. https://doi.org/10.1007/978-3-030-41600-3_1 10.1007/978-3-030-41600-3_1
Oliver Rüthing, Jens Knoop, and Bernhard Steffen. 1999. Detecting Equalities of Variables: Combining Efficiency with Precision. In 6th Static Analysis Symposium – SAS ’99, Agostino Cortesi and Gilberto Filé (Eds.) (Lecture Notes in Computer Science, Vol. 1694). Springer, 232–247. https://doi.org/10.1007/3-540-48294-6_15 10.1007/3-540-48294-6_15
Matthias Braun, Sebastian Buchwald, Sebastian Hack, Roland Leiß a, Christoph Mallon, and Andreas Zwinkau. 2013. Simple and Efficient Construction of Static Single Assignment Form. In 22nd International Conference on Compiler Construction (CC 2013). https://doi.org/10.1007/978-3-642-37051-9_6 10.1007/978-3-642-37051-9_6
Hugo Illous, Matthieu Lemerre, and Xavier Rival. 2021. A relational shape abstract domain. Formal Methods Syst. Des., 57, 3 (2021), 343–400. https://doi.org/10.1007/s10703-021-00366-4 10.1007/s10703-021-00366-4
André Luiz Camargos Tavares, Benoit Boissinot, Fernando Magno Quintão Pereira, and Fabrice Rastello. 2014. Parameterized Construction of Program Representations for Sparse Dataflow Analyses. In 23rd International Conference on Compiler Construction – CC 2014, Albert Cohen (Ed.) (Lecture Notes in Computer Science, Vol. 8409). Springer, 18–39. https://doi.org/10.1007/978-3-642-54807-9_2 10.1007/978-3-642-54807-9_2
Delphine Demange, Yon Fernández de Retana, and David Pichardie. 2018. Semantic reasoning about the sea of nodes. In 27th International Conference on Compiler Construction, Christophe Dubach and Jingling Xue (Eds.) (CC 2018). ACM, 163–173. https://doi.org/10.1145/3178372.3179503 10.1145/3178372.3179503
Cliff Click and Michael Paleczny. 1995. A simple graph-based intermediate representation. ACM Sigplan Notices, 30, 3 (1995), 35–49. https://doi.org/10.1145/202530.202534 10.1145/202530.202534
Jacobus Willem de Bakker and Lambert Meertens. 1975. On the Completeness of the Inductive Assertion Method. J. Comput. Syst. Sci., 11, 3 (1975), 323–357. https://doi.org/10.1016/S0022-0000(75)80056-0 10.1016/S0022-0000(75)80056-0
Fabrice Rastello. 2016. SSA-based Compiler Design (1st ed.). Springer Publishing Company, Incorporated.
John H. Reif and Robert Endre Tarjan. 1982. Symbolic Program Analysis in Almost-Linear Time. SIAM J. Comput., 11, 1 (1982), 81–93. https://doi.org/10.1137/0211007 10.1137/0211007
K.R.M. Leino. 2005. Efficient weakest preconditions. Inform. Process. Lett., 93, 6 (2005), 281–288. https://doi.org/10.1016/j.ipl.2004.10.015 10.1016/j.ipl.2004.10.015
Davide Sangiorgi. 2009. On the origins of bisimulation and coinduction. ACM Trans. Program. Lang. Syst., 31, 4 (2009), 15:1–15:41. https://doi.org/10.1145/1516507.1516510 10.1145/1516507.1516510
Sumit Gulwani and George C. Necula. 2004. A Polynomial-Time Algorithm for Global Value Numbering. In Static Analysis Symposium, Roberto Giacobazzi (Ed.) (SAS 2004). Springer, 212–227. https://doi.org/10.1007/978-3-540-27864-1_17 10.1007/978-3-540-27864-1_17
James Stanier. 2016. Graphs and Gating Functions (1st ed.).
Antoine Miné. 2006. Symbolic methods to enhance the precision of numerical abstract domains. In International Workshop on Verification, Model Checking, and Abstract Interpretation (VMCAI 2006). 348–363. https://doi.org/10.1007/11609773_23 10.1007/11609773_23
Barry K Rosen, Mark N Wegman, and F Kenneth Zadeck. 1988. Global value numbers and redundant computations. In 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL 1988). 12–27. https://doi.org/10.1145/73560.73562 10.1145/73560.73562
Sorin Lerner, David Grove, and Craig Chambers. 2002. Composing dataflow analyses and transformations. In 29th SIGPLAN-SIGACT Symposium on Principles of Programming Languages, John Launchbury and John C. Mitchell (Eds.) (POPL 2002). ACM, 270–282. https://doi.org/10.1145/503272.503298 10.1145/503272.503298
Jianzhou Zhao, Santosh Nagarakatte, Milo M. K. Martin, and Steve Zdancewic. 2012. Formalizing the LLVM intermediate representation for verified program transformations. In 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, John Field and Michael Hicks (Eds.) (POPL 2012). 427–440. https://doi.org/10.1145/2103656.2103709 10.1145/2103656.2103709
Mark N. Wegman and F. Kenneth Zadeck. 1991. Constant Propagation with Conditional Branches. ACM Trans. Program. Lang. Syst., 13, 2 (1991), 181–210. https://doi.org/10.1145/103135.103136 10.1145/103135.103136
Johannes Kinder, Florian Zuleger, and Helmut Veith. 2009. An Abstract Interpretation-Based Framework for Control Flow Reconstruction from Binaries. In Verification, Model Checking, and Abstract Interpretation, Neil D. Jones and Markus Müller-Olm (Eds.) (VMCAI 2009). Springer, 214–228. https://doi.org/10.1007/978-3-540-93900-9_19 10.1007/978-3-540-93900-9_19
Thomas W. Reps, Shmuel Sagiv, and Greta Yorsh. 2004. Symbolic Implementation of the Best Transformer. In 5th International Conference on Verification, Model Checking, and Abstract Interpretation – VMCAI 2004, Bernhard Steffen and Giorgio Levi (Eds.) (Lecture Notes in Computer Science, Vol. 2937). Springer, 252–266. https://doi.org/10.1007/978-3-540-24622-0_21 10.1007/978-3-540-24622-0_21
Sébastien Bardin, Philippe Herrmann, and Franck Védrine. 2011. Refinement-Based CFG Reconstruction from Unstructured Programs. In 12th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI 2011, Vol. 6538). Springer, 54–69. https://doi.org/10.1007/978-3-642-18275-4_6 10.1007/978-3-642-18275-4_6
Adel Djoudi, Sébastien Bardin, and Éric Goubault. 2016. Recovering High-Level Conditions from Binary Programs. In : 21st International Symposium on Formal Methods (FM 2016). 235–253. https://doi.org/10.1007/978-3-319-48989-6_15 10.1007/978-3-319-48989-6_15
Chris Okasaki and Andrew Gill. 1998. Fast Mergeable Integer Maps. In Workshop on ML. 77–86.
Sebastian Buchwald, Denis Lohner, and Sebastian Ullrich. 2016. Verified construction of static single assignment form. In 25th International Conference on Compiler Construction (CC 2016). ACM, 67–76. https://doi.org/10.1145/2892208.2892211 10.1145/2892208.2892211
David Brumley
Stanier James (e_1_2_1_71_1)
Cooper Keith D (e_1_2_1_22_1)
e_1_2_1_20_1
e_1_2_1_41_1
e_1_2_1_66_1
e_1_2_1_68_1
e_1_2_1_45_1
e_1_2_1_62_1
e_1_2_1_43_1
e_1_2_1_64_1
e_1_2_1_28_1
e_1_2_1_49_1
e_1_2_1_26_1
e_1_2_1_47_1
Schneider Sigurd (e_1_2_1_69_1)
Rastello Fabrice (e_1_2_1_60_1)
e_1_2_1_31_1
e_1_2_1_77_1
e_1_2_1_8_1
e_1_2_1_56_1
Okasaki Chris (e_1_2_1_58_1) 1998
e_1_2_1_6_1
e_1_2_1_12_1
e_1_2_1_35_1
e_1_2_1_50_1
e_1_2_1_4_1
e_1_2_1_10_1
e_1_2_1_33_1
e_1_2_1_52_1
e_1_2_1_75_1
e_1_2_1_2_1
e_1_2_1_16_1
e_1_2_1_37_1
e_1_2_1_18_1
Evan Chang Bor-Yuh (e_1_2_1_17_1)
Brumley David (e_1_2_1_14_1) 2013
e_1_2_1_42_1
e_1_2_1_40_1
e_1_2_1_67_1
e_1_2_1_46_1
e_1_2_1_61_1
e_1_2_1_21_1
e_1_2_1_44_1
e_1_2_1_63_1
e_1_2_1_27_1
e_1_2_1_25_1
e_1_2_1_48_1
e_1_2_1_29_1
Hack Sebastian (e_1_2_1_39_1)
e_1_2_1_70_1
e_1_2_1_7_1
e_1_2_1_30_1
e_1_2_1_55_1
e_1_2_1_76_1
e_1_2_1_5_1
e_1_2_1_57_1
e_1_2_1_78_1
e_1_2_1_3_1
e_1_2_1_13_1
e_1_2_1_34_1
e_1_2_1_51_1
e_1_2_1_72_1
e_1_2_1_1_1
e_1_2_1_11_1
e_1_2_1_32_1
e_1_2_1_53_1
e_1_2_1_74_1
e_1_2_1_38_1
e_1_2_1_15_1
e_1_2_1_36_1
Cousot Patrick (e_1_2_1_23_1) 1977
e_1_2_1_59_1
e_1_2_1_9_1
e_1_2_1_19_1
References_xml – reference: Patrick Cousot. 1977. Asynchronous iterative methods for solving a fixed point system of monotone equations in a complete lattice. Laboratoire IMAG, Université scientifique et médicale de Grenoble, Grenoble, France. https://www.di.ens.fr/~cousot/publications.www/Cousot-IMAG-RR88-Sep-1977.pdf
– reference: André Luiz Camargos Tavares, Benoit Boissinot, Fernando Magno Quintão Pereira, and Fabrice Rastello. 2014. Parameterized Construction of Program Representations for Sparse Dataflow Analyses. In 23rd International Conference on Compiler Construction – CC 2014, Albert Cohen (Ed.) (Lecture Notes in Computer Science, Vol. 8409). Springer, 18–39. https://doi.org/10.1007/978-3-642-54807-9_2 10.1007/978-3-642-54807-9_2
– reference: Mark N. Wegman and F. Kenneth Zadeck. 1991. Constant Propagation with Conditional Branches. ACM Trans. Program. Lang. Syst., 13, 2 (1991), 181–210. https://doi.org/10.1145/103135.103136 10.1145/103135.103136
– reference: Patrick Cousot and Radhia Cousot. 1977. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In 4th ACM Symposium on Principles of Programming Languages (POPL 1977). 238–252. https://doi.org/10.1145/512950.512973 10.1145/512950.512973
– reference: Julien Henry, David Monniaux, and Matthieu Moy. 2012. PAGAI: a path sensitive static analyzer. In Tools for Automatic Program Analysis (TAPAS), Bertrand Jeannet (Ed.). https://doi.org/10.1016/j.entcs.2012.11.003 10.1016/j.entcs.2012.11.003
– reference: Olivier Nicole, Matthieu Lemerre, and Xavier Rival. 2021. Binsec/Codex, an abstract interpreter to verify safety and security properties of systems code. https://binsec.github.io/assets/publications/papers/2021-rtas-technical-report-analysis.pdf
– reference: Gilles Barthe, Delphine Demange, and David Pichardie. 2014. Formal Verification of an SSA-Based Middle-End for CompCert. ACM Trans. Program. Lang. Syst., 36, 1 (2014), 4:1–4:35. https://doi.org/10.1145/2579080 10.1145/2579080
– reference: Bor-Yuh Evan Chang and Xavier Rival. 2013. Modular Construction of Shape-Numeric Analyzers. In Festschrift for Dave Schmidt, Anindya Banerjee, Olivier Danvy, Kyung-Goo Doh, and John Hatcliff (Eds.) (EPTCS, Vol. 129). https://doi.org/10.48550/arXiv.1309.5138
– reference: Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck. 1991. Efficiently Computing Static Single Assignment Form and the Control Dependence Graph. ACM Trans. Program. Lang. Syst., 13, 4 (1991), oct, 451–490. https://doi.org/10.1145/115372.115320 10.1145/115372.115320
– reference: Sorin Lerner, David Grove, and Craig Chambers. 2002. Composing dataflow analyses and transformations. In 29th SIGPLAN-SIGACT Symposium on Principles of Programming Languages, John Launchbury and John C. Mitchell (Eds.) (POPL 2002). ACM, 270–282. https://doi.org/10.1145/503272.503298 10.1145/503272.503298
– reference: Thomas W. Reps, Shmuel Sagiv, and Greta Yorsh. 2004. Symbolic Implementation of the Best Transformer. In 5th International Conference on Verification, Model Checking, and Abstract Interpretation – VMCAI 2004, Bernhard Steffen and Giorgio Levi (Eds.) (Lecture Notes in Computer Science, Vol. 2937). Springer, 252–266. https://doi.org/10.1007/978-3-540-24622-0_21 10.1007/978-3-540-24622-0_21
– reference: Richard Kelsey. 1995. A Correspondence between Continuation Passing Style and Static Single Assignment Form. In Proceedings ACM SIGPLAN Workshop on Intermediate Representations (IR’95), Michael D. Ernst (Ed.). ACM, 13–23. https://doi.org/10.1145/202529.202532 10.1145/202529.202532
– reference: Arie Gurfinkel, Temesghen Kahsai, Anvesh Komuravelli, and Jorge A Navas. 2015. The SeaHorn verification framework. In International Conference on Computer Aided Verification (CAV 2015). 343–361. https://doi.org/10.1007/978-3-319-21690-4_20 10.1007/978-3-319-21690-4_20
– reference: Edmund M. Clarke, Daniel Kroening, and Flavio Lerda. 2004. A Tool for Checking ANSI-C Programs. In 10th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, Kurt Jensen and Andreas Podelski (Eds.) (TACAS 2004). Springer, 168–176. https://doi.org/10.1007/978-3-540-24730-2_15 10.1007/978-3-540-24730-2_15
– reference: Marc M. Brandis and Hanspeter Mössenböck. 1994. Single-Pass Generation of Static Single-Assignment Form for Structured Languages. ACM Trans. Program. Lang. Syst., 16, 6 (1994), 1684–1698. https://doi.org/10.1145/197320.197331 10.1145/197320.197331
– reference: Tiark Rompf. 2012. Lightweight modular staging and embedded compilers: Abstraction without regret for high-level high-performance programming. Ph.D. Dissertation. École Polytechnique Fédérale de Lausanne.
– reference: Sébastien Bardin, Philippe Herrmann, and Franck Védrine. 2011. Refinement-Based CFG Reconstruction from Unstructured Programs. In 12th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI 2011, Vol. 6538). Springer, 54–69. https://doi.org/10.1007/978-3-642-18275-4_6 10.1007/978-3-642-18275-4_6
– reference: James C. King. 1976. Symbolic Execution and Program Testing. Commun. ACM, 19, 7 (1976), 385–394. https://doi.org/10.1145/360248.360252 10.1145/360248.360252
– reference: Edsger W. Dijkstra. 1975. Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM, 18, 8 (1975), aug, 453–457. https://doi.org/10.1145/360933.360975 10.1145/360933.360975
– reference: Gary A Kildall. 1973. A unified approach to global program optimization. In 1st annual ACM SIGACT-SIGPLAN Symposium on Principles of programming languages (POPL 1973). https://doi.org/10.1145/512927.512945 10.1145/512927.512945
– reference: James Stanier. 2016. Graphs and Gating Functions (1st ed.).
– reference: Thomas Reinbacher and Jörg Brauer. 2011. Precise control flow reconstruction using boolean logic. In 11th International Conference on Embedded Software, Samarjit Chakraborty, Ahmed Jerraya, Sanjoy K. Baruah, and Sebastian Fischmeister (Eds.) (EMSOFT 2011). ACM, 117–126. https://doi.org/10.1145/2038642.2038662 10.1145/2038642.2038662
– reference: Sigurd Schneider. 2013. Semantics of an Intermediate Language for Program Transformation. Master’s thesis. Saarland University. https://www.ps.uni-saarland.de/~sdschn/msc.pdf
– reference: Bowen Alpern, Mark N. Wegman, and F. Kenneth Zadeck. 1988. Detecting Equality of Variables in Programs. In 15th ACM Symposium on Principles of Programming Languages (POPL 1988). 1–11. https://doi.org/10.1145/73560.73561 10.1145/73560.73561
– reference: Fabrice Rastello. 2016. SSA-based Compiler Design (1st ed.). Springer Publishing Company, Incorporated.
– reference: B. Blanchet, P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A. Miné, D. Monniaux, and X. Rival. 2002. Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software. The Essence of Computation: Complexity, Analysis, Transformation. Essays Dedicated to Neil D. Jones, 2566 (2002), Oct., 85–108. https://doi.org/10.1007/3-540-36377-7_5 10.1007/3-540-36377-7_5
– reference: Oliver Rüthing, Jens Knoop, and Bernhard Steffen. 1999. Detecting Equalities of Variables: Combining Efficiency with Precision. In 6th Static Analysis Symposium – SAS ’99, Agostino Cortesi and Gilberto Filé (Eds.) (Lecture Notes in Computer Science, Vol. 1694). Springer, 232–247. https://doi.org/10.1007/3-540-48294-6_15 10.1007/3-540-48294-6_15
– reference: Hugo Illous, Matthieu Lemerre, and Xavier Rival. 2021. A relational shape abstract domain. Formal Methods Syst. Des., 57, 3 (2021), 343–400. https://doi.org/10.1007/s10703-021-00366-4 10.1007/s10703-021-00366-4
– reference: Andrew W. Appel. 1998. SSA is Functional Programming. SIGPLAN Notices, 33, 4 (1998), apr, 17–20. https://doi.org/10.1145/278283.278285 10.1145/278283.278285
– reference: Vugranam C. Sreedhar and Guang R. Gao. 1995. A Linear Time Algorithm for Placing phi-nodes. In 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Ron K. Cytron and Peter Lee (Eds.) (POPL 1995). 62–73. https://doi.org/10.1145/199448.199464 10.1145/199448.199464
– reference: Patrick Cousot, Radhia Cousot, Jérôme Feret, Laurent Mauborgne, Antoine Miné, David Monniaux, and Xavier Rival. 2006. Combination of Abstractions in the ASTRÉE Static Analyzer. In Revised Selected Papers from the 11th Asian Computing Science Conference on Advances in Computer Science - Secure Software and Related Issues – ASIAN 2006 (Lecture Notes in Computer Science, Vol. 4435). Springer, 272–300. https://doi.org/10.1007/978-3-540-77505-8_23 10.1007/978-3-540-77505-8_23
– reference: Benjamin Farinier, Robin David, Sébastien Bardin, and Matthieu Lemerre. 2018. Arrays Made Simpler: An Efficient, Scalable and Thorough Preprocessing. In 22nd International Conference on Logic for Programming, Artificial Intelligence and Reasoning, Gilles Barthe, Geoff Sutcliffe, and Margus Veanes (Eds.) (EPiC Series in Computing, Vol. 57). EasyChair, 363–380. https://doi.org/10.29007/dc9b 10.29007/dc9b
– reference: Keith D Cooper and Taylor Simpson. 1995. SCC-Based Value Numbering. Rice University.
– reference: Cliff Click and Keith D. Cooper. 1995. Combining Analyses, Combining Optimizations. ACM Trans. Program. Lang. Syst., 17, 2 (1995), 181–196. https://doi.org/10.1145/201059.201061 10.1145/201059.201061
– reference: John Aycock and R. Nigel Horspool. 2000. Simple Generation of Static Single-Assignment Form. In 9th International Conference on Compiler Construction – CC 2000 (LNCS, Vol. 1781). Springer, 110–124. https://doi.org/10.1007/3-540-46423-9_8 10.1007/3-540-46423-9_8
– reference: Antoine Miné. 2006. Symbolic methods to enhance the precision of numerical abstract domains. In International Workshop on Verification, Model Checking, and Abstract Interpretation (VMCAI 2006). 348–363. https://doi.org/10.1007/11609773_23 10.1007/11609773_23
– reference: Jong-Deok Choi, Ron Cytron, and Jeanne Ferrante. 1991. Automatic Construction of Sparse Data Flow Evaluation Graphs. In 18th ACM Symposium on Principles of Programming Languages, David S. Wise (Ed.) (POPL 1991). 55–66. https://doi.org/10.1145/99583.99594 10.1145/99583.99594
– reference: Solène Mirliaz and David Pichardie. 2022. A Flow-Insensitive-Complete Program Representation. In 23th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI 2022). https://doi.org/10.1007/978-3-030-94583-1_10 10.1007/978-3-030-94583-1_10
– reference: Michael James Van Emmerik. 2007. Static single assignment for decompilation. Ph.D. Dissertation. University of Queensland.
– reference: Patrick Cousot. 1978. Méthodes itératives de construction et d’approximation de points fixes d’opérateurs monotones sur un treillis, analyse sémantique de programmes (in French). Ph.D. Dissertation. Université Joseph Fourier. Grenoble, France. https://www.di.ens.fr/~cousot/publications.www/CousotTheseEsSciences1978.pdf
– reference: Chris Okasaki and Andrew Gill. 1998. Fast Mergeable Integer Maps. In Workshop on ML. 77–86.
– reference: Norman Ramsey, João Dias, and Simon L. Peyton Jones. 2010. Hoopl: a modular, reusable library for dataflow analysis and transformation. In Proceedings of the 3rd ACM SIGPLAN Symposium on Haskell, Jeremy Gibbons (Ed.) (Haskell 2010). ACM, 121–134. https://doi.org/10.1145/1863523.1863539 10.1145/1863523.1863539
– reference: Matthieu Journault, Antoine Miné, Raphaël Monat, and Abdelraouf Ouadjaout. 2019. Combinations of Reusable Abstract Domains for a Multilingual Static Analyzer. In 11th International Conference on Verified Software Theories, Tools, and Experiments - Revised Selected Papers, Supratik Chakraborty and Jorge A. Navas (Eds.) (Lecture Notes in Computer Science, Vol. 12031). Springer, 1–18. https://doi.org/10.1007/978-3-030-41600-3_1 10.1007/978-3-030-41600-3_1
– reference: Graeme Gange, Jorge A. Navas, Peter Schachte, Harald Søndergaard, and Peter J. Stuckey. 2016. An Abstract Domain of Uninterpreted Functions. In Verification, Model Checking, and Abstract Interpretation, Barbara Jobstmann and K. Rustan M. Leino (Eds.) (VMCAI 2016). Springer, 85–103. https://doi.org/10.1007/978-3-662-49122-5_4 10.1007/978-3-662-49122-5_4
– reference: Davide Sangiorgi. 2009. On the origins of bisimulation and coinduction. ACM Trans. Program. Lang. Syst., 31, 4 (2009), 15:1–15:41. https://doi.org/10.1145/1516507.1516510 10.1145/1516507.1516510
– reference: Bor-Yuh Evan Chang and K. Rustan M. Leino. 2005. Abstract Interpretation with Alien Expressions and Heap Structures. Springer, 147–163. https://doi.org/10.1007/978-3-540-30579-8_11 10.1007/978-3-540-30579-8_11
– reference: Johannes Kinder, Florian Zuleger, and Helmut Veith. 2009. An Abstract Interpretation-Based Framework for Control Flow Reconstruction from Binaries. In Verification, Model Checking, and Abstract Interpretation, Neil D. Jones and Markus Müller-Olm (Eds.) (VMCAI 2009). Springer, 214–228. https://doi.org/10.1007/978-3-540-93900-9_19 10.1007/978-3-540-93900-9_19
– reference: Matthias Braun, Sebastian Buchwald, Sebastian Hack, Roland Leiß a, Christoph Mallon, and Andreas Zwinkau. 2013. Simple and Efficient Construction of Static Single Assignment Form. In 22nd International Conference on Compiler Construction (CC 2013). https://doi.org/10.1007/978-3-642-37051-9_6 10.1007/978-3-642-37051-9_6
– reference: Patrick Cousot and Radhia Cousot. 1979. Systematic design of program analysis frameworks. In 6th ACM Symposium on Principles of Programming Languages (POPL 1979). 269–282. https://doi.org/10.1145/567752.567778 10.1145/567752.567778
– reference: Sebastian Hack. 2016. SSA reconstruction (1st ed.).
– reference: Sumit Gulwani and George C. Necula. 2004. A Polynomial-Time Algorithm for Global Value Numbering. In Static Analysis Symposium, Roberto Giacobazzi (Ed.) (SAS 2004). Springer, 212–227. https://doi.org/10.1007/978-3-540-27864-1_17 10.1007/978-3-540-27864-1_17
– reference: Barry K Rosen, Mark N Wegman, and F Kenneth Zadeck. 1988. Global value numbers and redundant computations. In 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL 1988). 12–27. https://doi.org/10.1145/73560.73562 10.1145/73560.73562
– reference: Jianzhou Zhao, Santosh Nagarakatte, Milo M. K. Martin, and Steve Zdancewic. 2012. Formalizing the LLVM intermediate representation for verified program transformations. In 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, John Field and Michael Hicks (Eds.) (POPL 2012). 427–440. https://doi.org/10.1145/2103656.2103709 10.1145/2103656.2103709
– reference: Jacobus Willem de Bakker and Lambert Meertens. 1975. On the Completeness of the Inductive Assertion Method. J. Comput. Syst. Sci., 11, 3 (1975), 323–357. https://doi.org/10.1016/S0022-0000(75)80056-0 10.1016/S0022-0000(75)80056-0
– reference: Xuejun Yang, Yang Chen, Eric Eide, and John Regehr. 2011. Finding and understanding bugs in C compilers. In 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, :SERIES: PLDI 2011, Mary W. Hall and David A. Padua (Eds.). ACM, 283–294. https://doi.org/10.1145/1993498.1993532 10.1145/1993498.1993532
– reference: Zena M Ariola and Jan Willem Klop. 1996. Equational term graph rewriting. Fundamenta Informaticae, 26, 3, 4 (1996), 207–240. https://doi.org/10.3233/FI-1996-263401 10.3233/FI-1996-263401
– reference: Greg Nelson. 1980. Techniques for program verification. Ph.D. Dissertation. Stanford University, CA, USA.
– reference: Olivier Nicole, Matthieu Lemerre, and Xavier Rival. 2022. Lightweight Shape Analysis Based on Physical Types. In 23rd International Conference on Verification, Model Checking, and Abstract Interpretation – VMCAI 2022, Bernd Finkbeiner and Thomas Wies (Eds.) (Lecture Notes in Computer Science, Vol. 13182). Springer, 219–241. https://doi.org/10.1007/978-3-030-94583-1_11 10.1007/978-3-030-94583-1_11
– reference: Adel Djoudi, Sébastien Bardin, and Éric Goubault. 2016. Recovering High-Level Conditions from Binary Programs. In : 21st International Symposium on Formal Methods (FM 2016). 235–253. https://doi.org/10.1007/978-3-319-48989-6_15 10.1007/978-3-319-48989-6_15
– reference: K.R.M. Leino. 2005. Efficient weakest preconditions. Inform. Process. Lett., 93, 6 (2005), 281–288. https://doi.org/10.1016/j.ipl.2004.10.015 10.1016/j.ipl.2004.10.015
– reference: David Brumley, JongHyup Lee, Edward J. Schwartz, and Maverick Woo. 2013. Native x86 Decompilation Using Semantics-Preserving Structural Analysis and Iterative Control-Flow Structuring. In 22th USENIX Security Symposium. USENIX Association, 353–368. https://www.usenix.org/conference/usenixsecurity13/technical-sessions/presentation/schwartz
– reference: John H. Reif and Harry R. Lewis. 1986. Efficient Symbolic Analysis of Programs. J. Comput. Syst. Sci., 32, 3 (1986), 280–314. https://doi.org/10.1016/0022-0000(86)90031-0 10.1016/0022-0000(86)90031-0
– reference: Patrick Cousot. 2002. Constructive design of a hierarchy of semantics of a transition system by abstract interpretation. Theor. Comput. Sci., 277, 1-2 (2002), 47–103. https://doi.org/10.1016/S0304-3975(00)00313-3 10.1016/S0304-3975(00)00313-3
– reference: Martin Brain, Saurabh Joshi, Daniel Kroening, and Peter Schrammel. 2015. Safety Verification and Refutation by k-Invariants and k-Induction. In Static Analysis, Sandrine Blazy and Thomas Jensen (Eds.) (SAS 2015). Springer, 145–161. https://doi.org/10.1007/978-3-662-48288-9_9 10.1007/978-3-662-48288-9_9
– reference: François Bourdoncle. 1993. Efficient chaotic iteration strategies with widenings. In Formal Methods in Programming and their Applications. 128–141. https://doi.org/10.1007/BFb0039704 10.1007/BFb0039704
– reference: Matthieu Lemerre. 2023. SSA Translation is an Abstract Interpretation (artifact). CEA, LIST. https://doi.org/10.1145/3554341 10.1145/3554341
– reference: Cliff Click and Michael Paleczny. 1995. A simple graph-based intermediate representation. ACM Sigplan Notices, 30, 3 (1995), 35–49. https://doi.org/10.1145/202530.202534 10.1145/202530.202534
– reference: William Mansky and Elsa L. Gunter. 2010. A Framework for Formal Verification of Compiler Optimizations. In 1st International Conference on Interactive Theorem Proving – ITP 2010, Matt Kaufmann and Lawrence C. Paulson (Eds.) (Lecture Notes in Computer Science, Vol. 6172). Springer, 371–386. https://doi.org/10.1007/978-3-642-14052-5_26 10.1007/978-3-642-14052-5_26
– reference: Patrick Cousot and Radhia Cousot. 2002. Systematic design of program transformation frameworks by abstract interpretation. In 29th Symposium on Principles of Programming Languages, John Launchbury and John C. Mitchell (Eds.) (POPL 2002). ACM, 178–190. https://doi.org/10.1145/503272.503290 10.1145/503272.503290
– reference: John H. Reif and Robert Endre Tarjan. 1982. Symbolic Program Analysis in Almost-Linear Time. SIAM J. Comput., 11, 1 (1982), 81–93. https://doi.org/10.1137/0211007 10.1137/0211007
– reference: Max Willsey, Chandrakana Nandi, Yisu Remy Wang, Oliver Flatt, Zachary Tatlock, and Pavel Panchekha. 2021. egg: Fast and extensible equality saturation. Proc. ACM Program. Lang., 5, POPL (2021), 1–29. https://doi.org/10.1145/3434304 10.1145/3434304
– reference: Sandrine Blazy, David Bühler, and Boris Yakobowski. 2017. Structuring Abstract Interpreters Through State and Value Abstractions. In 18th International Conference on Verification, Model Checking, and Abstract Interpretation, Ahmed Bouajjani and David Monniaux (Eds.) (VMCAI 2017, Vol. 10145). Springer, 112–130. https://doi.org/10.1007/978-3-319-52234-0_7 10.1007/978-3-319-52234-0_7
– reference: Sebastian Buchwald, Denis Lohner, and Sebastian Ullrich. 2016. Verified construction of static single assignment form. In 25th International Conference on Compiler Construction (CC 2016). ACM, 67–76. https://doi.org/10.1145/2892208.2892211 10.1145/2892208.2892211
– reference: Delphine Demange, Yon Fernández de Retana, and David Pichardie. 2018. Semantic reasoning about the sea of nodes. In 27th International Conference on Compiler Construction, Christophe Dubach and Jingling Xue (Eds.) (CC 2018). ACM, 163–173. https://doi.org/10.1145/3178372.3179503 10.1145/3178372.3179503
– reference: Olivier Nicole, Matthieu Lemerre, Sébastien Bardin, and Xavier Rival. 2021. No Crash, No Exploit: Automated Verification of Embedded Kernels. In 27th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS 2021). 27–39. https://doi.org/10.1109/RTAS52030.2021.00011 10.1109/RTAS52030.2021.00011
– reference: S. Bharadwaj Yadavalli and Aaron Smith. 2019. Raising binaries to LLVM IR with MCTOLL (WIP paper). In 20th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems, Jian-Jia Chen and Aviral Shrivastava (Eds.) (LCTES 2019). 213–218. https://doi.org/10.1145/3316482.3326354 10.1145/3316482.3326354
– reference: Andrew W Appel. 1998. Modern compiler implementation in ML. Cambridge University Press. https://doi.org/10.1017/CBO9780511811449 10.1017/CBO9780511811449
– reference: Matthieu Lemerre. 2023. SSA Translation is an Abstract Interpretation (full version with appendices). CEA, LIST. https://binsec.github.io/assets/publications/papers/2023-popl-full-with-appendices.pdf
– volume-title: Semantics of an Intermediate Language for Program Transformation. Master’s thesis
  ident: e_1_2_1_69_1
– ident: e_1_2_1_7_1
  doi: 10.1145/2579080
– volume-title: Graphs and Gating Functions
  ident: e_1_2_1_71_1
– ident: e_1_2_1_75_1
  doi: 10.1145/3434304
– ident: e_1_2_1_26_1
  doi: 10.1145/512950.512973
– ident: e_1_2_1_41_1
  doi: 10.1007/s10703-021-00366-4
– ident: e_1_2_1_48_1
  doi: 10.1145/3571258
– ident: e_1_2_1_42_1
  doi: 10.1007/978-3-030-41600-3_1
– volume-title: SCC-Based Value Numbering
  ident: e_1_2_1_22_1
– volume-title: Université scientifique et médicale de Grenoble
  year: 1977
  ident: e_1_2_1_23_1
– ident: e_1_2_1_32_1
  doi: 10.1145/3178372.3179503
– ident: e_1_2_1_34_1
  doi: 10.1007/978-3-319-48989-6_15
– ident: e_1_2_1_10_1
  doi: 10.1007/BFb0039704
– ident: e_1_2_1_45_1
  doi: 10.1007/978-3-540-93900-9_19
– ident: e_1_2_1_78_1
  doi: 10.1145/2103656.2103709
– ident: e_1_2_1_68_1
  doi: 10.1145/1516507.1516510
– ident: e_1_2_1_33_1
  doi: 10.1145/360933.360975
– ident: e_1_2_1_46_1
  doi: 10.1145/360248.360252
– volume-title: Fast Mergeable Integer Maps. In Workshop on ML. 77–86
  year: 1998
  ident: e_1_2_1_58_1
– ident: e_1_2_1_67_1
  doi: 10.1007/3-540-48294-6_15
– ident: e_1_2_1_53_1
  doi: 10.1007/978-3-030-94583-1_10
– ident: e_1_2_1_30_1
  doi: 10.1145/115372.115320
– ident: e_1_2_1_51_1
  doi: 10.1007/978-3-642-14052-5_26
– ident: e_1_2_1_64_1
  doi: 10.1007/978-3-540-24622-0_21
– ident: e_1_2_1_74_1
  doi: 10.1145/103135.103136
– ident: e_1_2_1_16_1
  doi: 10.1007/978-3-540-30579-8_11
– ident: e_1_2_1_13_1
  doi: 10.1007/978-3-642-37051-9_6
– ident: e_1_2_1_50_1
  doi: 10.1145/503272.503298
– ident: e_1_2_1_9_1
  doi: 10.1007/978-3-319-52234-0_7
– ident: e_1_2_1_35_1
  doi: 10.29007/dc9b
– ident: e_1_2_1_72_1
  doi: 10.1007/978-3-642-54807-9_2
– ident: e_1_2_1_56_1
– ident: e_1_2_1_3_1
  doi: 10.1145/278283.278285
– ident: e_1_2_1_59_1
  doi: 10.1145/1863523.1863539
– ident: e_1_2_1_77_1
  doi: 10.1145/1993498.1993532
– volume-title: 22th USENIX Security Symposium. USENIX Association, 353–368
  year: 2013
  ident: e_1_2_1_14_1
– ident: e_1_2_1_44_1
  doi: 10.1145/512927.512945
– ident: e_1_2_1_18_1
  doi: 10.1145/99583.99594
– ident: e_1_2_1_55_1
  doi: 10.1109/RTAS52030.2021.00011
– ident: e_1_2_1_11_1
  doi: 10.1007/978-3-662-48288-9_9
– volume-title: SSA reconstruction
  ident: e_1_2_1_39_1
– ident: e_1_2_1_61_1
  doi: 10.1016/0022-0000(86)90031-0
– ident: e_1_2_1_57_1
  doi: 10.1007/978-3-030-94583-1_11
– ident: e_1_2_1_36_1
  doi: 10.1007/978-3-662-49122-5_4
– ident: e_1_2_1_37_1
  doi: 10.1007/978-3-540-27864-1_17
– ident: e_1_2_1_52_1
  doi: 10.1007/11609773_23
– ident: e_1_2_1_43_1
  doi: 10.1145/202529.202532
– ident: e_1_2_1_27_1
  doi: 10.1145/567752.567778
– ident: e_1_2_1_5_1
  doi: 10.1007/3-540-46423-9_8
– ident: e_1_2_1_20_1
  doi: 10.1145/201059.201061
– ident: e_1_2_1_19_1
  doi: 10.1007/978-3-540-24730-2_15
– ident: e_1_2_1_40_1
  doi: 10.1016/j.entcs.2012.11.003
– ident: e_1_2_1_15_1
  doi: 10.1145/2892208.2892211
– ident: e_1_2_1_31_1
  doi: 10.1016/S0022-0000(75)80056-0
– ident: e_1_2_1_70_1
  doi: 10.1145/199448.199464
– ident: e_1_2_1_8_1
  doi: 10.1007/3-540-36377-7_5
– ident: e_1_2_1_28_1
  doi: 10.1145/503272.503290
– volume-title: SSA-based Compiler Design
  ident: e_1_2_1_60_1
– ident: e_1_2_1_1_1
  doi: 10.1145/73560.73561
– ident: e_1_2_1_47_1
  doi: 10.1016/j.ipl.2004.10.015
– ident: e_1_2_1_66_1
  doi: 10.1145/73560.73562
– volume-title: Festschrift for Dave Schmidt, Anindya Banerjee, Olivier Danvy, Kyung-Goo Doh, and John Hatcliff (Eds.) (EPTCS
  ident: e_1_2_1_17_1
– ident: e_1_2_1_63_1
  doi: 10.1145/2038642.2038662
– ident: e_1_2_1_4_1
  doi: 10.3233/FI-1996-263401
– ident: e_1_2_1_25_1
  doi: 10.1016/S0304-3975(00)00313-3
– ident: e_1_2_1_49_1
  doi: 10.1145/3554341
– ident: e_1_2_1_21_1
  doi: 10.1145/202530.202534
– ident: e_1_2_1_2_1
  doi: 10.1017/CBO9780511811449
– ident: e_1_2_1_12_1
  doi: 10.1145/197320.197331
– ident: e_1_2_1_62_1
  doi: 10.1137/0211007
– ident: e_1_2_1_29_1
  doi: 10.1007/978-3-540-77505-8_23
– ident: e_1_2_1_38_1
  doi: 10.1007/978-3-319-21690-4_20
– ident: e_1_2_1_6_1
  doi: 10.1007/978-3-642-18275-4_6
– ident: e_1_2_1_76_1
  doi: 10.1145/3316482.3326354
SSID ssj0001934839
Score 2.2482295
Snippet Static single assignment (SSA) form is a popular intermediate representation that helps implement useful static analyses, including global value numbering...
SourceID hal
crossref
acm
SourceType Open Access Repository
Enrichment Source
Index Database
Publisher
StartPage 1895
SubjectTerms Abstraction
Compilers
Computer Science
Equational logic and rewriting
Formal software verification
Program analysis
Program verification
Programming Languages
Software and its engineering
Theory of computation
SubjectTermsDisplay Software and its engineering -- Compilers
Software and its engineering -- Formal software verification
Theory of computation -- Abstraction
Theory of computation -- Equational logic and rewriting
Theory of computation -- Program analysis
Theory of computation -- Program verification
Title SSA Translation Is an Abstract Interpretation
URI https://dl.acm.org/doi/10.1145/3571258
https://cea.hal.science/cea-03849637
Volume 7
WOSCitedRecordID wos000910847500065&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVHPJ
  databaseName: ROAD: Directory of Open Access Scholarly Resources
  customDbUrl:
  eissn: 2475-1421
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0001934839
  issn: 2475-1421
  databaseCode: M~E
  dateStart: 20170101
  isFulltext: true
  titleUrlDefault: https://road.issn.org
  providerName: ISSN International Centre
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1JT9wwFLbYDlxK2dRpaRUhxGUUOo7t2D5GqBVIA4wESNwi23FUpJIiZhGn_vY-J3YmA0iFA5cocmIn8ec8f35-C0IHmjKdUjaAH0m5oNoyibW2KiYWyIOBIZCqOs7skJ-fi5sbOfI528d1OgFeVeLxUd6_K9RQBmA719k3wN02CgVwDqDDEWCH46uAv7zMmpDljZVb_9RFYe5n2uk0zKS_aGXY5aajdi6rzTuy4zO3k-ANuO6cSiEoN1sePnTuxV657RKH39ppV42QkFqNIOfSJqGcxZg27spH9oUyLy55Z1SMLkbDjvTDokmY6WdSt7Z7WUpTF9CCMA7sSswnorD5_mR-aq0GGx9qlvuKy2g14Uw6O76zvx3FmiRU1Bnk2tdvnKVd3e--ruMi5m6Biyz_Cqr0mlpcfUQf_JogyhosN9GSrbbQRsi3EXnxu41igDbqQBudjiNVRQHaaBHaHXT988fV8Uns013EimA8ibWVhhuGLSwi04K6_ekC-KUWXMN3loIpomWRSmsxiE1Vcmw0xqa0tGADyhXZRSvVn8p-QpExJRWywBqao0DxlChTLYQCPmZJmaY9tAWfn983AU1Ch_bQYeiO3PgI8S5Rye_8Sc_34AnhxtDGs1v2oT_bqy6I-Uk2zI1V-YAICmKfz5LP_2_nC1qfj9Y9tDJ5mNqvaM3MJrfjh2818v8AErVajA
linkProvider ISSN International Centre
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=SSA+Translation+Is+an+Abstract+Interpretation&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Lemerre%2C+Matthieu&rft.date=2023-01-09&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=7&rft.issue=POPL&rft.spage=1895&rft.epage=1924&rft_id=info:doi/10.1145%2F3571258&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3571258
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon