Psi-SSA Form

In the SSA representation, each definition of a variable is given a unique name, and new pseudo-definitions are introduced on PHI-functions to merge values coming from different control-flow paths. Each definition is an unconditional definition, and the value of a variable is the value of the expres...

Full description

Saved in:
Bibliographic Details
Published inSSA-based Compiler Design pp. 201 - 212
Main Author de Ferrière, François
Format Book Chapter
LanguageEnglish
Published Cham Springer International Publishing 2022
Subjects
Online AccessGet full text
ISBN303080514X
9783030805142
DOI10.1007/978-3-030-80515-9_15

Cover

More Information
Summary:In the SSA representation, each definition of a variable is given a unique name, and new pseudo-definitions are introduced on PHI-functions to merge values coming from different control-flow paths. Each definition is an unconditional definition, and the value of a variable is the value of the expression on the unique assignment to this variable. This essential property of the SSA representation no longer holds in the presence of conditionally executed, or predicated, code. When an operation is conditionally executed, the variable defined by this operation will or will not be modified depending on the value of a guard register. As a result, the value of the variable after the predicated operation is either the result of the operation if the predicate is true, or the value the variable had before this operation if the predicate is false. The goal of the PSI-SSA form advocated in this chapter is to express these conditional definitions while keeping the static single assignment property.
ISBN:303080514X
9783030805142
DOI:10.1007/978-3-030-80515-9_15