#### DMCA

## Efficiently computing static single assignment form and the control dependence graph (1991)

### Cached

### Download Links

- [grothoff.org]
- [www.eecs.umich.edu]
- [www.cs.purdue.edu]
- [www.math.tau.ac.il]
- [www.cs.colorado.edu]
- [www.cs.utsa.edu]
- [sol.cs.trinity.edu]
- [www.cs.trinity.edu]
- [www-plan.cs.colorado.edu]
- [sol.cs.trinity.edu]
- [rsim.cs.illinois.edu]
- [www.cs.cmu.edu]
- [www.cs.purdue.edu]
- [www.cse.unsw.edu.au]
- [www.cs.utexas.edu]
- [www.cse.iitb.ac.in]
- [ldc.usb.ve]
- [www.cs.uiuc.edu]
- [cist.buct.edu.cn]
- DBLP

### Other Repositories/Bibliography

Venue: | ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS |

Citations: | 990 - 8 self |

### Citations

985 | The program dependence graph and its use in optimization - Ferrante, Ottenstein, et al. - 1987 |

466 | Optimizing Supercompilers for Supercomputers - Wolfe - 1989 |

464 |
Register allocation & spilling via graph coloring
- Chaitin
- 1982
(Show Context)
Citation Context ... if (Q) then L t 2 else L - 3 K-K+ I else KtK+2 print (I, J,K, L) repeat if (R) (1) (1) (1) (1) (2) (2) (3) (3) (3) (4) (5) (6) (6) (7) (8) (9) (9) then L +- L + 4 (10) until (S) (11) 1-1+6 until (T) =-=(12)-=- (12) Fig 5 Simple pro~amand itscontrol flow graph 49 10 11 @IEl--& any basic block at which the program can be entered, and there is an edge to Exit from any basic block that can exit the program. Fo... |

414 | Zadeck. Analysis of pointers and structures
- Chase, Wegman, et al.
- 1990
(Show Context)
Citation Context ...age can be conservatively modeled by representing the entire heap as a single variable that is both modified and used by any statement that may change the heap. More refined modeling is also possible =-=[15]-=-, but the conservative approach is already strong enough to support optimization of code that does not involve the heap but is interspersed with heap-dependent code. For any statement S, three types o... |

352 | Constant propagation with conditional branches
- Wegman, Zadeck
- 1991
(Show Context)
Citation Context ...ll uses of V after the join point are really uses of the constant 4. Such possibilities can be taken into account without SSA form, but the processing is either costly [48] or difficult to understand =-=[49]-=-. With SSA form, the algorithm is fast and simple. Initially, the algorithm assumes that each edge is unexecutable (i. e., never followed at run time) and that each variable is constant with an as-yet... |

249 | Integrating noninterfering versions of programs
- Horwitz, Prins, et al.
- 1989
(Show Context)
Citation Context ...itely causes that statement to execute while another edge can cause the statement to be skipped. Such information is vital for detection of parallelism [2], program optimization, and program analysis =-=[28]-=-. 1.3 Outline of the Rest of the Paper Section 2 reviews the representation of control flow by a directed graph, Section 3 explains SSA form and sketches how to construct it. This section also conside... |

214 | Flow analysis and optimization of LISPlike structures - Jones, Muchnick - 1981 |

210 |
Register allocation via coloring
- Chaitin, Auslander, et al.
- 1981
(Show Context)
Citation Context ...tems, Vol. 13, No. 4, October 1991.s458 0 Ron Cytron et al. 1-1 J+ I Kti L+-1 repeat if (P) then do end J+ I if (Q) then L +-- 2 else L +--- 3 K-K+ I else K+--K+2 11-1 Jl +-1 Kl +-l L1tl repeat 12 - #=-=(13,11)-=- J2 - @(J4, JI) K2 + l#J(K~,K~) L2 +- 4(L9, L1) if (P) then do end J3 - 12 if (Q) then L3 t 2 else L4 +- 3 L5 - @(L3, L4) K3 +K2+1 else K4 +- K2+2 J4 - #( J3, J2) K5 - @(K3, K4) L6 + ~(L2,L~) print (I... |

197 |
version of a data-flow procedure language, Lect
- Dennis
- 1974
(Show Context)
Citation Context ...ation is still too slow, even in typical cases 3This notation is similar to Select and Update [24], which, in turn, is similar to notation for referencing aggregate structures in a data flow language =-=[23]-=-. ACM Transactions on Programming Languages and Systems, Vol. 13, No. 4, October 1991sStatic Single Assignment Form and the Control Dependence Graph . 461 + A(i) - Access (A, i) +- ACCeSS(A8, 17) A(j)... |

197 |
Global value numbers and redundant computations
- Rosen, Wegman, et al.
- 1988
(Show Context)
Citation Context ...d. E edges for a program with Q variables. One algorithm [411 requires 0( Ea( E, N)) bit vector operations (where each vector is of length Q) to find all of the pseudoassignments. A simpler algorithm =-=[43]-=- for reducible programs computes SSA form in time 0( E x Q). With lengths of bit vectors taken into account, both of these algorithms are essentially 0( R2 ) on programs of size R, and the simpler alg... |

184 | A fast algorithm for finding dominators in a flowgraph
- Lengauer, Tarjan
- 1979
(Show Context)
Citation Context ...ts parent in the tree. The dominator tree for CFG from Figure 5 is shown in Figure 9. Let N and E be the numbers of nodes and edges in CFG. The dominator tree can be constructed in 0( Ea( E, N)) time =-=[35]-=- or (by a more difficult algorithm) in 0(E) time [26]. For all practical purposes, a( E, N) is a small constant,4 so this paper will consider the dominator tree to have been found in linear time. The ... |

172 | The Priority-Based Coloring Approach to Register Allocation - Chow, Hennessy - 1990 |

161 | Detecting conflicts between structure accesses - Larus, Hilfinger - 1988 |

149 |
The program dependence web: a representation supporting control-, data-, and demand-driven interpretation of imperative languages
- Ottenstein, Ballance, et al.
- 1990
(Show Context)
Citation Context ...trol Dependence Graph . 459 with the node X where it appears [5]. When the control flow of a language is suitably restricted, each @function can be tagged with information about conditionals or loops =-=[5, 6, 11, 52]-=-. The algorithms in this paper apply to such variants as well. SSA form may be considered as a property of a single program OY as a relation between two programs. A single program is defined to be in ... |

144 |
Dependence analysis for pointer variables
- Horwitz, Pfeiffer, et al.
- 1989
(Show Context)
Citation Context ... are available to extract more detailed information: To determine parameter aliasing and effects of procedures on global variables, see [7-9], [19], [37], and [42]; to determine pointer aliasing, see =-=[14, 15, 27, 29, 33, 34]-=-, and [44]. When a sophisticated analysis technique is applied, the usual result is that there are few side effects and the tuples (both LHS and RHS) are small. Small tuples can be represented directl... |

138 |
Interprocedural dependence analysis and parallelization
- Burke, Cytron
- 1986
(Show Context)
Citation Context ...the crudeness of the Update operator is to accept it. Address calculations and other genuine scalar calculations can still be optimized extensively. Another response is to perform dependence analysis =-=[3, 10, 32, 51]-=-, which can sometimes determine that no subsequent accesses of A require values produced by any other assignment to A. Such is the case for each execution of the assignment to A(i) in Figure 8a. The a... |

128 |
An efficient way to find the side effects of procedure calls and the aliases of variables
- Banning
- 1979
(Show Context)
Citation Context .... Ron Cytron et al. 1+1 J+ I K+l L+-1 repeat if (P) then do end J- I if (Q) then L t 2 else L - 3 K-K+ I else KtK+2 print (I, J,K, L) repeat if (R) (1) (1) (1) (1) (2) (2) (3) (3) (3) (4) (5) (6) (6) =-=(7)-=- (8) (9) (9) then L +- L + 4 (10) until (S) (11) 1-1+6 until (T) (12) (12) Fig 5 Simple pro~amand itscontrol flow graph 49 10 11 @IEl--& any basic block at which the program can be entered, and there ... |

125 | Automatic Construction of Sparse Data Flow Evaluation Graphs - Choi, Cytron, et al. - 1991 |

125 | A precise interprocedural data flow algorithm - Myers - 1981 |

122 |
The Structure of Computers and Computation
- Kuck
- 1978
(Show Context)
Citation Context ...s unconcerned with whether the values of variables are large objects or what the operators mean. As with scalars, translation of array references to SSA form removes some anti- and output-dependences =-=[32]-=-. In the program in Figure 7a, dependence analysis may prohibit reordering the use of A(i) by the first statement and the definition of A(j) by the second statement. After translation to SSA form, the... |

103 | An overview of the PTRAN analysis system for multiprocessing - Allen, Burke, et al. - 1987 |

94 |
Dependence Analysis for Subscripted Variables and Its Application to Program Transformations
- Allen
- 1983
(Show Context)
Citation Context ...the crudeness of the Update operator is to accept it. Address calculations and other genuine scalar calculations can still be optimized extensively. Another response is to perform dependence analysis =-=[3, 10, 32, 51]-=-, which can sometimes determine that no subsequent accesses of A require values produced by any other assignment to A. Such is the case for each execution of the assignment to A(i) in Figure 8a. The a... |

86 |
An interval-based approach to exhaustive and incremental interprocedural data- analysis
- Burke
- 1990
(Show Context)
Citation Context ...tron et al. 1+1 J+ I K+l L+-1 repeat if (P) then do end J- I if (Q) then L t 2 else L - 3 K-K+ I else KtK+2 print (I, J,K, L) repeat if (R) (1) (1) (1) (1) (2) (2) (3) (3) (3) (4) (5) (6) (6) (7) (8) =-=(9)-=- (9) then L +- L + 4 (10) until (S) (11) 1-1+6 until (T) (12) (12) Fig 5 Simple pro~amand itscontrol flow graph 49 10 11 @IEl--& any basic block at which the program can be entered, and there is an ed... |

82 | Matrix Eigensystem Routines - EISPACK Guide Extension - Garbow, Boyle, et al. - 1977 |

76 |
A practical interprocedural data flow analysis algorithm
- Barth
- 1978
(Show Context)
Citation Context ...n Cytron et al. 1+1 J+ I K+l L+-1 repeat if (P) then do end J- I if (Q) then L t 2 else L - 3 K-K+ I else KtK+2 print (I, J,K, L) repeat if (R) (1) (1) (1) (1) (2) (2) (3) (3) (3) (4) (5) (6) (6) (7) =-=(8)-=- (9) (9) then L +- L + 4 (10) until (S) (11) 1-1+6 until (T) (12) (12) Fig 5 Simple pro~amand itscontrol flow graph 49 10 11 @IEl--& any basic block at which the program can be entered, and there is a... |

72 | The semantics of program dependence
- Cartwright, Felleisen
- 1989
(Show Context)
Citation Context ...trol Dependence Graph . 459 with the node X where it appears [5]. When the control flow of a language is suitably restricted, each @function can be tagged with information about conditionals or loops =-=[5, 6, 11, 52]-=-. The algorithms in this paper apply to such variants as well. SSA form may be considered as a property of a single program OY as a relation between two programs. A single program is defined to be in ... |

71 | A Portable Machine-Independent Global Optimizer—Design and Measurements - Chow - 1984 |

69 |
Lifetime analysis of dynamically allocated objects
- Ruggieri, Murtagh
- 1988
(Show Context)
Citation Context ... detailed information: To determine parameter aliasing and effects of procedures on global variables, see [7-9], [19], [37], and [42]; to determine pointer aliasing, see [14, 15, 27, 29, 33, 34], and =-=[44]-=-. When a sophisticated analysis technique is applied, the usual result is that there are few side effects and the tuples (both LHS and RHS) are small. Small tuples can be represented directly. Sophist... |

64 |
A Survey of data flow analysis techniques
- Kennedy
- 1981
(Show Context)
Citation Context ...30, 31, 381.1° Our algorithm, given in Figure 17, goes one step further in eliminating dead conditional branches. (An unpublished algorithm by R. Paige does this al so.) ‘“The more readily accessible =-=[31]-=- contains a typographical error; the earlier technical report [301 should be consulted for the correct version. ACM TransactIons on Programmmg Languages and Systems, Vol. 13, No. 4, October 1991.s480 ... |

60 | Finding dominators in directed graphs - Tarjan - 1974 |

56 | Compiling C for vectorization, parallelization, and inline expansion - Allen, Johnson - 1988 |

42 | Code motion of control structures in high-level languages - Cytron, Lowry, et al. |

41 |
A linear time algorithm for finding dominators in flow graphs and related problems, the 17th Annu
- Harel
- 1985
(Show Context)
Citation Context ...m Figure 5 is shown in Figure 9. Let N and E be the numbers of nodes and edges in CFG. The dominator tree can be constructed in 0( Ea( E, N)) time [35] or (by a more difficult algorithm) in 0(E) time =-=[26]-=-. For all practical purposes, a( E, N) is a small constant,4 so this paper will consider the dominator tree to have been found in linear time. The dominator tree of CFG has exactly the same set of nod... |

41 | Symbolic program analysis in almost-linear time - Reif, Tarjan - 1981 |

39 |
Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors
- Larus
- 1989
(Show Context)
Citation Context ... are available to extract more detailed information: To determine parameter aliasing and effects of procedures on global variables, see [7-9], [19], [37], and [42]; to determine pointer aliasing, see =-=[14, 15, 27, 29, 33, 34]-=-, and [44]. When a sophisticated analysis technique is applied, the usual result is that there are few side effects and the tuples (both LHS and RHS) are small. Small tuples can be represented directl... |

33 |
Data flow analysis for procedural languages
- Rosen
- 1976
(Show Context)
Citation Context ...nsformations can be performed. Techniques are available to extract more detailed information: To determine parameter aliasing and effects of procedures on global variables, see [7-9], [19], [37], and =-=[42]-=-; to determine pointer aliasing, see [14, 15, 27, 29, 33, 34], and [44]. When a sophisticated analysis technique is applied, the usual result is that there are few side effects and the tuples (both LH... |

32 |
Safety considerations for storage allocation optimizations
- Chase
- 1988
(Show Context)
Citation Context ... are available to extract more detailed information: To determine parameter aliasing and effects of procedures on global variables, see [7-9], [19], [37], and [42]; to determine pointer aliasing, see =-=[14, 15, 27, 29, 33, 34]-=-, and [44]. When a sophisticated analysis technique is applied, the usual result is that there are few side effects and the tuples (both LHS and RHS) are small. Small tuples can be represented directl... |

31 | Detecting program components with equivalent behaviors
- Yang, Horwitz, et al.
- 1989
(Show Context)
Citation Context ...trol Dependence Graph . 459 with the node X where it appears [5]. When the control flow of a language is suitably restricted, each @function can be tagged with information about conditionals or loops =-=[5, 6, 11, 52]-=-. The algorithms in this paper apply to such variants as well. SSA form may be considered as a property of a single program OY as a relation between two programs. A single program is defined to be in ... |

27 |
Property extraction in wellfounded property sets
- Wegbreit
- 1975
(Show Context)
Citation Context ...f Q is the constant true, then all uses of V after the join point are really uses of the constant 4. Such possibilities can be taken into account without SSA form, but the processing is either costly =-=[48]-=- or difficult to understand [49]. With SSA form, the algorithm is fast and simple. Initially, the algorithm assumes that each edge is unexecutable (i. e., never followed at run time) and that each var... |

26 | Genetic Algorithms
- Shapiro
(Show Context)
Citation Context ...ut being fl( R2) in the worst case. The data in Section 8 suggest that the control dependence calculation is effectively 0(R). 9.2 Related Work Minimal SSA form is a refinement of Shapiro and Saint’s =-=[45]-=- notion of a pseudoassignment. The pseudoassignment nodes for V are exactly the nodes that need o-functions for V. A closer precursor [221 of SSA form associated new names for V with pseudoassignment ... |

20 |
Detecting equality of values in programs
- Alpern, Wegman, et al.
(Show Context)
Citation Context ... control flow. ACM Transactions on Programming Languages and Systems, Vol. 13, No 4, October 1991sStatic Single Assignment Form and the Control Dependence Graph . 459 with the node X where it appears =-=[5]-=-. When the control flow of a language is suitably restricted, each @function can be tagged with information about conditionals or loops [5, 6, 11, 52]. The algorithms in this paper apply to such varia... |

13 | What's in a name - Cytron, Ferrante - 1987 |

10 |
Interprocedural Data Flow Analysis in a Programming Environment
- Cooper
- 1983
(Show Context)
Citation Context ... extent that transformations can be performed. Techniques are available to extract more detailed information: To determine parameter aliasing and effects of procedures on global variables, see [7-9], =-=[19]-=-, [37], and [42]; to determine pointer aliasing, see [14, 15, 27, 29, 33, 34], and [44]. When a sophisticated analysis technique is applied, the usual result is that there are few side effects and the... |

10 | Efficient Symbolic Analysis of Programs - Reif, Lewis - 1986 |

7 | A Formal Framework for the Derivation of Machine-Specific Optimizers - Giegerich - 1983 |

7 |
Program Flow Analysis
- Muchnick, Jones
- 1981
(Show Context)
Citation Context ... The statements of a program are organized into (not necessarily maximal) basic blocks, where program flow enters a basic block at its first statement and leaves the basic block at its last statement =-=[1, 36]-=-. Basic blocks are indicated by the column of numbers in parentheses in Figure 5. A control jZow graph is a directed graph whose nodes are the basic blocks of a program and two additional nodes, Entry... |

6 |
An improved control dependence algorithm
- Cytron, Ferrante
- 1987
(Show Context)
Citation Context ...inance frontier of every node where a +-function has already been placed, and so on. The same concept of dominance frontiers used for computing SSA form can also be used to compute control dependence =-=[20, 24]-=-, which identify those conditions affecting statement execution. Informally, a statement is control dependent on a branch if one edge from the branch definitely causes that statement to execute while ... |

6 | Perfect report: 1 - Pointer - 1989 |

3 | Global dead computation elimination - KENNEDY - 1973 |

1 |
An overview of the PTRAN analysis system for multiprocessing
- Addison-Wesley, Mass
- 1986
(Show Context)
Citation Context ... The statements of a program are organized into (not necessarily maximal) basic blocks, where program flow enters a basic block at its first statement and leaves the basic block at its last statement =-=[1, 36]-=-. Basic blocks are indicated by the column of numbers in parentheses in Figure 5. A control jZow graph is a directed graph whose nodes are the basic blocks of a program and two additional nodes, Entry... |

1 |
The program dependence gmph and its use in optimization
- FERRANTE, OTTENSTEIN, et al.
- 1987
(Show Context)
Citation Context ...inance frontier of every node where a +-function has already been placed, and so on. The same concept of dominance frontiers used for computing SSA form can also be used to compute control dependence =-=[20, 24]-=-, which identify those conditions affecting statement execution. Informally, a statement is control dependent on a branch if one edge from the branch definitely causes that statement to execute while ... |

1 |
Flow analysis and optimization of lLISP-like structures
- JONES, MUCHNICK
- 1981
(Show Context)
Citation Context |

1 | Data-flow Graphs as an Intermediate Form - Ottenstein - 1978 |

1 | report: 1. Tech. Rep CSRD 896, Center for Supercomputing Research and Development, Univ. of Illinois at Urbana-Champaign - POINTER - 1989 |

1 |
Eigensystem Routines – Eispack Guide
- BOYLE, DONGARRA
- 1995
(Show Context)
Citation Context ... frontiers and placing ~-functions in the PTRAN system, which already offered the required local data flow and control flow analysis [2]. We ran these algorithms on 61 library procedures from EISPACK =-=[46]-=- and 160 procedures from two “Perfect” [391 benchmarks. Some summary statistics of these procedures are shown in Table I. These FORTRAN programs were chosen because they contain irreducible intervals ... |