Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Hecht, M. S., & Ullman, J. D. (1973). Analysis of a simple algorithm for global data flow problems. In Proceedings of the Symposium on Principles of Programming Languages. POPL ’73 (pp. 207–217).
Kam, J. B., & Ullman, J. D. (1976). Global data flow analysis and iterative algorithms. Journal of the ACM, 23(1), 158–171.
Nielson, F., Nielson, H. R., & Hankin, C. (2005). Principles of program analysis. New York: Springer.
Novillo, D. (2005). A propagation engine for GCC. In Proceedings of the GCC Developers Summit (pp. 175–184).
Wegman, M. N., & Kenneth Zadeck, F. (1991). Constant propagation with conditional branches. ACM Transactions on Programming Language and Systems, 13(2), 181–210.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
Cite this chapter
Brandner, F., Novillo, D. (2022). Propagating Information Using SSA. In: Rastello, F., Bouchez Tichadou, F. (eds) SSA-based Compiler Design. Springer, Cham. https://doi.org/10.1007/978-3-030-80515-9_8
Download citation
DOI: https://doi.org/10.1007/978-3-030-80515-9_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-80514-2
Online ISBN: 978-3-030-80515-9
eBook Packages: Computer ScienceComputer Science (R0)