Propagating Information Using SSA

This chapter provides a gentle introduction to classical data-flow analysis and explains how SSA form improves both performance and expressiveness. In the first part, classical data-flow analysis is discussed by introducing the fundamentals of monotone frameworks on control-flow graphs. In the follo...

Full description

Saved in:
Bibliographic Details
Published inSSA-based Compiler Design pp. 95 - 106
Main Authors Brandner, Florian, Novillo, Diego
Format Book Chapter
LanguageEnglish
Published Cham Springer International Publishing 2022
Subjects
Online AccessGet full text
ISBN303080514X
9783030805142
DOI10.1007/978-3-030-80515-9_8

Cover

More Information
Summary:This chapter provides a gentle introduction to classical data-flow analysis and explains how SSA form improves both performance and expressiveness. In the first part, classical data-flow analysis is discussed by introducing the fundamentals of monotone frameworks on control-flow graphs. In the following part, the chapter introduces a simple and elegant data-flow engine that exploits SSA form. The engine relies on SSA form in order to efficiently propagate information on the values of variables on a so-called SSA graph, while at the same time taking into account control dependencies that emerge from the classical control-flow graph. The engine’s operation is explained through several examples based on constant and copy propagation, which illustrate the advantages of jointly processing the program’s data and control flow.
ISBN:303080514X
9783030805142
DOI:10.1007/978-3-030-80515-9_8