Standard Construction and Destruction Algorithms
This chapter describes the standard algorithms for construction and destruction of SSA form. SSA construction refers to the process of translating a non-SSA program into one that satisfies the SSA constraints. In general, this transformation occurs as one of the earliest phases in the middle-end of...
Saved in:
| Published in | SSA-based Compiler Design pp. 23 - 39 |
|---|---|
| Main Authors | , |
| Format | Book Chapter |
| Language | English |
| Published |
Cham
Springer International Publishing
2022
|
| Subjects | |
| Online Access | Get full text |
| ISBN | 303080514X 9783030805142 |
| DOI | 10.1007/978-3-030-80515-9_3 |
Cover
| Abstract | This chapter describes the standard algorithms for construction and destruction of SSA form. SSA construction refers to the process of translating a non-SSA program into one that satisfies the SSA constraints. In general, this transformation occurs as one of the earliest phases in the middle-end of an optimizing compiler, when the program has been converted to three-address intermediate code. SSA destruction is sometimes called out-of-SSA translation. This step generally takes place in an optimizing compiler after all SSA optimizations have been performed, and prior to code generation. Note, however, that there are specialized code generation techniques that can work directly on SSA-based intermediate representations such as instruction selection, if-conversion, and register allocation. The algorithms presented in this chapter are based on material from the seminal research papers on SSA. These original algorithms are straightforward to implement and have acceptable efficiency. Therefore, such algorithms are widely implemented in current compilers. Note that more efficient, albeit more complex, alternative algorithms have been devised. These are described in further chapters. |
|---|---|
| AbstractList | This chapter describes the standard algorithms for construction and destruction of SSA form. SSA construction refers to the process of translating a non-SSA program into one that satisfies the SSA constraints. In general, this transformation occurs as one of the earliest phases in the middle-end of an optimizing compiler, when the program has been converted to three-address intermediate code. SSA destruction is sometimes called out-of-SSA translation. This step generally takes place in an optimizing compiler after all SSA optimizations have been performed, and prior to code generation. Note, however, that there are specialized code generation techniques that can work directly on SSA-based intermediate representations such as instruction selection, if-conversion, and register allocation. The algorithms presented in this chapter are based on material from the seminal research papers on SSA. These original algorithms are straightforward to implement and have acceptable efficiency. Therefore, such algorithms are widely implemented in current compilers. Note that more efficient, albeit more complex, alternative algorithms have been devised. These are described in further chapters. |
| Author | Rastello, Fabrice Singer, Jeremy |
| Author_xml | – sequence: 1 givenname: Jeremy surname: Singer fullname: Singer, Jeremy email: Jeremy.Singer@glasgow.ac.uk – sequence: 2 givenname: Fabrice surname: Rastello fullname: Rastello, Fabrice |
| BookMark | eNp9j8tOwzAQRY0ACVryBWzyA4axnTT2sgpPqRILQGJnjRO7DaR2FadC_XtMC2LHanSP7h3pTMiJD94ScsngigFU16qSVFAQQCWUrKRKiyOSJSoS2yN1TCa_oXg7I1mM7wDApRCyZOcEnkf0LQ5tXgcfx2HbjF3weWL5jf3L834Zhm5creMFOXXYR5v93Cl5vbt9qR_o4un-sZ4v6IopJmgDwkFRoJqBNRIrh9C4puASZ6YyYAuFkjPFG1kZVzWt4y2zwrESnSy5UWJKisPfrd_g7hP7Xm-Gbo3DTjPQ3_Y6eWqhk5zeq-pkn2bsMIup7Zd20CaEj_jv5gvvD13P |
| ContentType | Book Chapter |
| Copyright | The Author(s), under exclusive license to Springer Nature Switzerland AG 2022 |
| Copyright_xml | – notice: The Author(s), under exclusive license to Springer Nature Switzerland AG 2022 |
| DBID | ABOKW UNPAY |
| DOI | 10.1007/978-3-030-80515-9_3 |
| DatabaseName | Unpaywall for CDI: Monographs and Miscellaneous Content Unpaywall |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: UNPAY name: Unpaywall url: https://proxy.k.utb.cz/login?url=https://unpaywall.org/ sourceTypes: Open Access Repository |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Engineering |
| EISBN | 9783030805159 3030805158 |
| Editor | Rastello, Fabrice Bouchez Tichadou, Florent |
| Editor_xml | – sequence: 1 givenname: Fabrice surname: Rastello fullname: Rastello, Fabrice email: fabrice.rastello@inria.fr – sequence: 2 givenname: Florent surname: Bouchez Tichadou fullname: Bouchez Tichadou, Florent email: florent.bouchez-tichadou@imag.fr |
| EndPage | 39 |
| ExternalDocumentID | oai:HAL:hal-04814854v1 |
| GroupedDBID | 38. AABBV AAZWU ABSVR ABTHU ABVND ACBPT ACHZO ACPMC ADNVS AEJLV AEKFX AHVRR AIYYB ALMA_UNASSIGNED_HOLDINGS BBABE CZZ IEZ SBO TPJZQ Z83 ABOKW UNPAY |
| ID | FETCH-LOGICAL-h1913-c03f044a960eb8a7fa0cfc428a6b7b0e49a82192c87bf7cdf2d1e3f15af852b93 |
| IEDL.DBID | UNPAY |
| ISBN | 303080514X 9783030805142 |
| IngestDate | Sun Oct 26 04:17:32 EDT 2025 Tue Jul 29 20:27:17 EDT 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | false |
| IsScholarly | false |
| Language | English |
| License | cc-by |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-h1913-c03f044a960eb8a7fa0cfc428a6b7b0e49a82192c87bf7cdf2d1e3f15af852b93 |
| OpenAccessLink | https://proxy.k.utb.cz/login?url=https://inria.hal.science/hal-04814854 |
| PageCount | 17 |
| ParticipantIDs | unpaywall_primary_10_1007_978_3_030_80515_9_3 springer_books_10_1007_978_3_030_80515_9_3 |
| PublicationCentury | 2000 |
| PublicationDate | 2022 |
| PublicationDateYYYYMMDD | 2022-01-01 |
| PublicationDate_xml | – year: 2022 text: 2022 |
| PublicationDecade | 2020 |
| PublicationPlace | Cham |
| PublicationPlace_xml | – name: Cham |
| PublicationTitle | SSA-based Compiler Design |
| PublicationYear | 2022 |
| Publisher | Springer International Publishing |
| Publisher_xml | – name: Springer International Publishing |
| SSID | ssj0002833851 |
| Score | 1.6596631 |
| Snippet | This chapter describes the standard algorithms for construction and destruction of SSA form. SSA construction refers to the process of translating a non-SSA... |
| SourceID | unpaywall springer |
| SourceType | Open Access Repository Publisher |
| StartPage | 23 |
| SubjectTerms | Compiler design Conventional SSA (C-SSA) Critical edge Dead code elimination Def-use chain DJ-graph Dominance frontier Iterated dominance frontier Join set Live-range splitting Minimal SSA Parallel copy Phi-function insertion Phi-web Semi-pruned SSA SSA construction SSA destruction Static single assignment form (SSA form) Transformed SSA (T-SSA) Vanilla SSA Variable renaming Variable version |
| Title | Standard Construction and Destruction Algorithms |
| URI | http://link.springer.com/10.1007/978-3-030-80515-9_3 https://inria.hal.science/hal-04814854 |
| UnpaywallVersion | submittedVersion |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlZ3PS8MwFMcfuh1EDyoqTnT04EnIbPOjP45DNsfQIehknkKSJk6c3XAbon-9r1s7hgfFW1NC2n4S8t5L874BOMcxo8OIJ4QaYQkXjhJtEwxWNHY_FyYIbL7ecdsLO33eHYhBsUF2kQuTIffGEP3OwgJc4jXJRU14LPgmVEOBPncFqv3eXfNpJSO0VIplBIcszrloo0ki2drPzW3YmmcT9fmhRqM1-9HehevyycttI6-N-Uw3zNcPUca_X20PdvLsBC9PG0Ai-7BhswPw74sFAS8_f7NUhPXwnpfHlWW5OXoev7_Mhm_TQ-i3Ww9XHVIchUCGGFAxYnzmfM4VfrvVsYqc8o0zGDqoUEfatzxRMc491MSRdpFJHU0Dy1wglIsF1Qk7gko2zuwxeMIFYaRTp6mx2GCiRWQCG6SxokxwqmtwUVKTuaM_laWyMSKWTCJiuUAsEXENyIqrnCz1MX6rf_LP-qdQQUj2DA3_TNeh2mx1bx7rRe9_A8LzrlU |
| linkProvider | Unpaywall |
| linkToUnpaywall | http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlZ3PS8MwFMcfuh1EDyoqTlR68CRktvnRtMchziE4BB3MU0jSxIlbN9yG6F_v69aO4UHx1pSQtp-EvPfSvG8ALnDMmFjylFArHOHCU2JcisGKwe7nwkaRK9Y77rtxp8fv-qJfbpBd5MLkyL05QL-ztABXeE0KUROeCL4J9Vigz12Deq_70HpeyQgtlWIZwSGLcy7aaJIqtvZzcxu25vlEf37o4XDNfrR34bZ68nLbyFtzPjNN-_VDlPHvV9uDnSI7ISjSBpDIPmy4_ADCx3JBICjO36wUYQO8FxRxZVVuDV_G76-zwWh6CL32zdN1h5RHIZABBlSM2JD5kHON3-5MoqXXofUWQwcdG2lCx1Od4NxDbSKNlzbzNIsc85HQPhHUpOwIavk4d8cQCB_F0mTeUOuwwdQIaSMXZYmmTHBqGnBZUVOFoz9VlbIxIlZMIWK1QKwQcQPIiquaLPUxfqt_8s_6p1BDSO4MDf_MnJe9_g1YTazA |
| 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%3Abook&rft.genre=bookitem&rft.title=SSA-based+Compiler+Design&rft.au=Singer%2C+Jeremy&rft.au=Rastello%2C+Fabrice&rft.atitle=Standard+Construction+and+Destruction+Algorithms&rft.date=2022-01-01&rft.pub=Springer+International+Publishing&rft.isbn=9783030805142&rft.spage=23&rft.epage=39&rft_id=info:doi/10.1007%2F978-3-030-80515-9_3 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9783030805142/lc.gif&client=summon&freeimage=true |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9783030805142/mc.gif&client=summon&freeimage=true |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9783030805142/sc.gif&client=summon&freeimage=true |