Affiliation:
1. Università di Padova, Padova, Italy
2. Cornell University, Ithaca, New York
Abstract
The Static Single Assignment (SSA) form is a program representation used in many optimizing compilers. The key step in converting a program to SSA form is called ϕ-placement. Many algorithms for ϕ-placement have been proposed in the literature, but the relationships between these algorithms are not well understood.In this article, we propose a framework within which we systematically derive (i) properties of the SSA form and (ii) ϕ-placement algorithms. This framework is based on a new relation called
merge
which captures succinctly the structure of a program's control flow graph that is relevant to its SSA form. The ϕ-placement algorithms we derive include most of the ones described in the literature, as well as several new ones. We also evaluate experimentally the performance of some of these algorithms on the SPEC92 benchmarks.Some of the algorithms described here are optimal for a single variable. However, their repeated application is not necessarily optimal for multiple variables. We conclude the article by describing such an optimal algorithm, based on the transitive reduction of the merge relation, for multi-variable ϕ-placement in structured programs. The problem for general programs remains open.
Publisher
Association for Computing Machinery (ACM)
Subject
Artificial Intelligence,Hardware and Architecture,Information Systems,Control and Systems Engineering,Software
Cited by
16 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. The Duality in Computing SSA Programs and Control Dependency;IEEE Transactions on Software Engineering;2023-04-01
2. More precise construction of static single assignment programs using reaching definitions;Journal of Systems and Software;2020-08
3. Towards Constructing the SSA form using Reaching Definitions Over Dominance Frontiers;2019 19th International Working Conference on Source Code Analysis and Manipulation (SCAM);2019-09
4. Semantic Analysis and Intermediate Code;Undergraduate Topics in Computer Science;2017
5. Single Assignment Compiler, Single Assignment Architecture;Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization;2014-02-15