A new algorithm for scalar register promotion based on SSA form
- 1 May 1998
- conference paper
- conference paper
- Published by Association for Computing Machinery (ACM)
- Vol. 33 (5), 15-25
- https://doi.org/10.1145/277650.277656
Abstract
We present a new register promotion algorithm based on Static Single Assignment (SSA) form. Register promotion is aimed at promoting program names from memory locations to registers. Our algorithm is profile-driven and is based on the scope of intervals. In cases where a complete promotion is not possible because of the presence of function calls or pointer references, the proposed algorithm is capable of eliminating loads and stores on frequently executed paths by placing loads and stores on less frequently executed paths. We also describe an efficient method to incrementally update SSA form when new definitions are cloned from an existing name during register promotion. On SPECInt95 benchmarks, our algorithm removes about ~12% of memory operations which access scalar variables.Keywords
This publication has 7 references indexed in Scilit:
- Register promotion in C programsPublished by Association for Computing Machinery (ACM) ,1997
- Global code motion/global value numberingPublished by Association for Computing Machinery (ACM) ,1995
- A linear time algorithm for placing φ-nodesPublished by Association for Computing Machinery (ACM) ,1995
- Scalar replacement in the presence of conditional control flowSoftware: Practice and Experience, 1994
- Efficiently computing static single assignment form and the control dependence graphACM Transactions on Programming Languages and Systems, 1991
- Constant propagation with conditional branchesACM Transactions on Programming Languages and Systems, 1991
- Global value numbers and redundant computationsPublished by Association for Computing Machinery (ACM) ,1988