SSI Properties Revisited
- 1 June 2012
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Embedded Computing Systems
- Vol. 11S (1), 1-23
- https://doi.org/10.1145/2180887.2180898
Abstract
The static single information (SSI) form is an extension of the static single assignment (SSA) form, a well-established compiler intermediate representation that has been successfully used for numerous compiler analysis and optimizations. Several interesting results have also been shown for SSI form concerning liveness analysis and the representation of live-ranges of variables, which could make SSI form appealing for just-in-time compilation. Unfortunately, we have uncovered several mistakes in the previous literature on SSI form, which, admittedly, is already quite sparse. This article corrects the mistakes that are most germane to SSI form. We first explain why the two definitions of SSI form proposed in past literature, first by C. S. Ananian, then by J. Singer, are not equivalent. Our main result is then to prove that basic blocks, and thus program points, can be totally ordered so that live-ranges of variables correspond to intervals on a line, a result that holds for both variants of SSI form. In other words, in SSI form, the intersection graph defined by live-ranges is an interval graph, a stronger structural property than for SSA form for which the intersection graph of live-ranges is chordal. Finally, we show how this structure of live-ranges can be used to simplify liveness analysis.Keywords
This publication has 20 references indexed in Scilit:
- Register Allocation Via Coloring of Chordal GraphsLecture Notes in Computer Science, 2005
- On loops, dominators, and dominance frontiersACM Transactions on Programming Languages and Systems, 2002
- Linear scan register allocationACM Transactions on Programming Languages and Systems, 1999
- Nesting of reducible and irreducible loopsACM Transactions on Programming Languages and Systems, 1997
- Identifying loops using DJ graphsACM Transactions on Programming Languages and Systems, 1996
- The program structure treeACM SIGPLAN Notices, 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
- The maximum k-colorable subgraph problem for chordal graphsInformation Processing Letters, 1987
- Register allocation via coloringComputer Languages, 1981