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

Full description

Saved in:
Bibliographic Details
Published inSSA-based Compiler Design pp. 23 - 39
Main Authors Singer, Jeremy, Rastello, Fabrice
Format Book Chapter
LanguageEnglish
Published Cham Springer International Publishing 2022
Subjects
Online AccessGet full text
ISBN303080514X
9783030805142
DOI10.1007/978-3-030-80515-9_3

Cover

More Information
Summary: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.
ISBN:303080514X
9783030805142
DOI:10.1007/978-3-030-80515-9_3