Hashed SSA Form: HSSA

SSA in its basic form is only applicable to scalar variables not involved in aliasing. We present extensions to traditional SSA that allow scalar variables affected by aliasing to be uniformly represented in SSA form. With aliasing, the number of SSA versions can increase rapidly. We describe a tech...

Full description

Saved in:
Bibliographic Details
Published inSSA-based Compiler Design pp. 213 - 225
Main Authors Mantione, Massimiliano, Chow, Fred
Format Book Chapter
LanguageEnglish
Published Cham Springer International Publishing 2022
Subjects
Online AccessGet full text
ISBN303080514X
9783030805142
DOI10.1007/978-3-030-80515-9_16

Cover

More Information
Summary:SSA in its basic form is only applicable to scalar variables not involved in aliasing. We present extensions to traditional SSA that allow scalar variables affected by aliasing to be uniformly represented in SSA form. With aliasing, the number of SSA versions can increase rapidly. We describe a technique that can limit such an increase in SSA versions without sacrificing the quality of the SSA-based optimizations performed. Our techniques for modeling aliasing in SSA form further allow us to apply SSA form not just to scalar variables but also to any indirectly accessed memory location. We introduce the concept of virtual variables and use it to model indirect memory operations in SSA form. Because all indirect memory operations are based on address computations, global value numbering on the address computations can greatly increase the accuracy of their SSA form. To this end, we introduce Hashed SSA as the most effective representation of aliases and indirect memory operations, thus allowing all SSA-based optimizations to be uniformly applied to nonlocal variables and indirectly accessed memory locations.
ISBN:303080514X
9783030805142
DOI:10.1007/978-3-030-80515-9_16