## Construction of Thinned Gated Single-Assignment Form (1993)

Venue: | In Proc. 6rd Workshop on Programming Languages and Compilers for Parallel Computing |

Citations: | 29 - 1 self |

### BibTeX

@INPROCEEDINGS{Havlak93constructionof,

author = {Paul Havlak},

title = {Construction of Thinned Gated Single-Assignment Form},

booktitle = {In Proc. 6rd Workshop on Programming Languages and Compilers for Parallel Computing},

year = {1993},

pages = {477--499},

publisher = {Springer Verlag}

}

### Years of Citing Articles

### OpenURL

### Abstract

. Analysis of symbolic expressions benefits from a suitable program representation. We show how to build thinned gated singleassignment (TGSA) form, a value-oriented program representation which is more complete than standard SSA form, defined on all reducible programs, and better for representing symbolic expressions than program dependence graphs or original GSA form. We present practical algorithms for constructing thinned GSA form from the control dependence graph and SSA form. Extensive experiments on large Fortran programs show these methods to take linear time and space in practice. Our implementation of value numbering on TGSA form drives scalar symbolic analysis in the ParaScope programming environment. 1 Introduction Analysis of non-constant values yields significant benefits in a parallelizing compiler. The design of a symbolic analyzer requires careful choice of a program representation, that these benefits may be gained without using excessive time and space. In symbolic ...

### Citations

846 | Efficiently Computing Static Single Assignment Form and the
- Cytron, Ferrante, et al.
- 1991
(Show Context)
Citation Context ...cks from G CF with a different set of edges. 6 Given a G CF edge e with label L from a branch node B, control dependence edges, also labeled L, go from B to every node that must execute if e is taken =-=[12]-=-. Loop-carried control dependence edges run from conditional branches out of a loop to the header block of the loop. Ignoring these edges leaves the acyclic forward control-dependence graph F CD [11].... |

829 | The program dependence graph and its use in optimization
- Ferrante, Ottenstein, et al.
- 1987
(Show Context)
Citation Context .... 1. Program Representations One candidate representation is the program dependence graph (PDG). There are actually several varieties of PDG used in compilers and other program transformation systems =-=[14, 18]-=-. The PDG variant shown in Figure 1 was introduced by Cartwright and Felleisen [7]. The solid arrows represent the flow of data and the dotted arrows execution decisions. This PDG may be interpreted b... |

220 |
Detecting equality of variables in programs
- Alpern, Wegman, et al.
- 1988
(Show Context)
Citation Context ...e the multiway tests common in Fortran and C; e.g., the branch in Figure 1 depending on I's being negative (\Gamma), zero, or positive (+). A second possibility is static single assignment (SSA) form =-=[3]-=-. In Figure 1, we give the def-use chains built on the SSA form of the program, where pseudoassignmentsshave been added at merges of values. I 3 = OE(I 2 ; I 1 ) looks like a nice expression for the m... |

143 | A fast algorithm for finding dominators in a flowgraph
- Lengauer, Tarjan
- 1979
(Show Context)
Citation Context ...oted BfflIpredom, is the last of the nodes (6= B) that lie on every path from START to B. B's immediate postdominator, BfflIpostdom, is the first of the nodes (6= B) lying on every path from B to END =-=[21]-=-. BfflHeader lies on every path into and around the most deeply nested loop containing B. 5 For some purposes we ignore back-edges (from a node to the header of a surrounding loop), leaving us with th... |

138 | Practical dependence testing
- Goff, Kennedy, et al.
- 1991
(Show Context)
Citation Context ...nductive value recognition [26]. While we have yet to complete our experiments with symbolic analysis, we can expect at least a 13 percent increase in dependences disproven, based on prior experience =-=[16]-=-. Related work on symbolic analysis has emphasized symbolic expressions [17] or linear inequalities [19]. The excessive worst-case bounds (cubic to exponential to undecidable) of symbolic analysis mak... |

132 |
The program dependence web: a representation supporting control- , data- and demand-driven interpretation of imperative lan- guages
- Ballance, Maccabe, et al.
- 1990
(Show Context)
Citation Context ... functions that encode control over value merges. GSA form was introduced as part of the program dependence web, and descends from the highlevel variant of SSA form (defined only for structured code) =-=[5, 3]-=-. In Figure 1, the fl function takes the predicate controlling the merge as an explicit input. Depending on whether I 1 is zero or positive, the new value for I 3 is I 2 (5) or I 1 , respectively. If ... |

126 |
Software methods for improvement of cache performance on supercomputer applications
- Porterfield
- 1989
(Show Context)
Citation Context ...tal Complexity We implemented these algorithms in the ParaScope programming environment [20] and tested them on 1227 procedures from 33 programs in the NAS, Perfect, SPEC, and RiCEPS benchmark suites =-=[4, 9, 25, 22]-=-. 11 All told, these Fortran applications contain around 70,000 executable statements. The 23 largest procedures have over 400 G CF nodes; the largest has 812. 5.1 Performance Parameters The time and ... |

113 |
Automatic construction of sparse data flow evaluation graphs
- Choi, Cytron, et al.
- 1991
(Show Context)
Citation Context ...ing fewer functions to replace a given OE than original GSA form. It should not be confused with pruning, which refers to the elimination of dead OE assignments in SSA form---those that reach no uses =-=[8]-=-. G CF edge goes from the former block to the latter. A unique START node has no in-edges and an out-edge to every procedure entry; a unique END node has no out-edges and an in-edge from every procedu... |

90 | Beyond induction variables
- Wolfe
- 1992
(Show Context)
Citation Context ...nd checking for a constant result. The power of this method subsumes that of the forward substitution used in earlier vectorizers [2], once further extensions are made for inductive value recognition =-=[26]-=-. While we have yet to complete our experiments with symbolic analysis, we can expect at least a 13 percent increase in dependences disproven, based on prior experience [16]. Related work on symbolic ... |

87 |
Dependence analysis for subscripted variables and its application to program transformations
- ALLEN
(Show Context)
Citation Context ...ressions are compared by constructing their difference, simplifying, and checking for a constant result. The power of this method subsumes that of the forward substitution used in earlier vectorizers =-=[2]-=-, once further extensions are made for inductive value recognition [26]. While we have yet to complete our experiments with symbolic analysis, we can expect at least a 13 percent increase in dependenc... |

82 | NAS parallel benchmark results
- Bailey, Barszcz, et al.
- 1992
(Show Context)
Citation Context ...tal Complexity We implemented these algorithms in the ParaScope programming environment [20] and tested them on 1227 procedures from 33 programs in the NAS, Perfect, SPEC, and RiCEPS benchmark suites =-=[4, 9, 25, 22]-=-. 11 All told, these Fortran applications contain around 70,000 executable statements. The 23 largest procedures have over 400 G CF nodes; the largest has 812. 5.1 Performance Parameters The time and ... |

80 |
Testing flow graph reducibility
- Tarjan
- 1973
(Show Context)
Citation Context ...efinition reaches the merge. The OE serves as a merge 5 Our loops are Tarjan intervals (nested strongly-connected regions), computed with minor extensions to Tarjan's test for flow-graph reducibility =-=[24]-=-. Irreducible loops are handled conservatively. 6 The original presentation of GSA form uses a factored control dependence graph with added region nodes [5, 14]. function, as in Figure 1, denoting tha... |

65 | Supercomputer performance evaluation and the Perfect Benchmarks
- Cybenko, Kipp, et al.
- 1990
(Show Context)
Citation Context ...tal Complexity We implemented these algorithms in the ParaScope programming environment [20] and tested them on 1227 procedures from 33 programs in the NAS, Perfect, SPEC, and RiCEPS benchmark suites =-=[4, 9, 25, 22]-=-. 11 All told, these Fortran applications contain around 70,000 executable statements. The 23 largest procedures have over 400 G CF nodes; the largest has 812. 5.1 Performance Parameters The time and ... |

62 | The Semantics of Program Dependence
- Cartwright, Felleisen
- 1989
(Show Context)
Citation Context ...ph (PDG). There are actually several varieties of PDG used in compilers and other program transformation systems [14, 18]. The PDG variant shown in Figure 1 was introduced by Cartwright and Felleisen =-=[7]-=-. The solid arrows represent the flow of data and the dotted arrows execution decisions. This PDG may be interpreted by allowing each node to execute when it receives a control token from a control-de... |

57 | On the Adequacy of Program Dependence Graphs for Representing Programs
- Horwitz, Prins, et al.
- 1988
(Show Context)
Citation Context .... 1. Program Representations One candidate representation is the program dependence graph (PDG). There are actually several varieties of PDG used in compilers and other program transformation systems =-=[14, 18]-=-. The PDG variant shown in Figure 1 was introduced by Cartwright and Felleisen [7]. The solid arrows represent the flow of data and the dotted arrows execution decisions. This PDG may be interpreted b... |

47 |
SPEC Benchmark Suite: Designed for Today's Advanced Systems
- Uniejewski
- 1989
(Show Context)
Citation Context |

38 |
Slicing Analysis and Indirect Access to Distributed Arrays
- Das, Saltz, et al.
- 1993
(Show Context)
Citation Context ...he analysis of scalar symbolic values, such as array subscripts and branch predicates. The implementation includes a conservative representation of array operations, which is used by other researcher =-=[13]-=-. 12 These measurements were taken inside the ParaScope programming environment, optimized with gcc version 2.4.5, running on a Sun MicroSystems Sparc 10 with 64 Mbytes of memory. . . ... . . . .. . .... |

35 | Symbolic program analysis and optimization for parallelizing compilers
- Haghighat, Polychronopoulos
- 1992
(Show Context)
Citation Context ...ts with symbolic analysis, we can expect at least a 13 percent increase in dependences disproven, based on prior experience [16]. Related work on symbolic analysis has emphasized symbolic expressions =-=[17]-=- or linear inequalities [19]. The excessive worst-case bounds (cubic to exponential to undecidable) of symbolic analysis make experimental comparisons vitally important. Preliminary experiments with o... |

31 |
A simple rewriting semantics for realistic imperative programs and its application to program analysis
- Field
- 1992
(Show Context)
Citation Context ...e that it takes time linear in the number of expressions analyzed. 6.2 Semantics Recent work by John Field gives a formal treatment of graph rewriting on a representation resembling original GSA form =-=[15]-=-. The program representation graph of Horwitz et al. also resembles GSA form [27]. Further work is needed to establish a comparably solid formal foundation for TGSA form. 7 Related Work 7.1 High-level... |

30 | Interprocedural analyses for programming environments
- Irigoin
- 1993
(Show Context)
Citation Context ...e can expect at least a 13 percent increase in dependences disproven, based on prior experience [16]. Related work on symbolic analysis has emphasized symbolic expressions [17] or linear inequalities =-=[19]-=-. The excessive worst-case bounds (cubic to exponential to undecidable) of symbolic analysis make experimental comparisons vitally important. Preliminary experiments with our implementation indicate t... |

30 | ªDetecting Program Components with Equivalent Behaviors,º
- Yang, Horwitz, et al.
- 1989
(Show Context)
Citation Context ...Recent work by John Field gives a formal treatment of graph rewriting on a representation resembling original GSA form [15]. The program representation graph of Horwitz et al. also resembles GSA form =-=[27]-=-. Further work is needed to establish a comparably solid formal foundation for TGSA form. 7 Related Work 7.1 High-level SSA form Alpern et al. presented SSA form and proposed extensions to improve han... |

25 | Analysis and transformation in the ParaScope Editor
- Kennedy, McKinley, et al.
- 1991
(Show Context)
Citation Context ...ts the input of the originalsj and the outermost j feeds the original uses of thesj. 5 Theoretical and Experimental Complexity We implemented these algorithms in the ParaScope programming environment =-=[20]-=- and tested them on 1227 procedures from 33 programs in the NAS, Perfect, SPEC, and RiCEPS benchmark suites [4, 9, 25, 22]. 11 All told, these Fortran applications contain around 70,000 executable sta... |

22 |
Compact representations for control dependence
- Cytron, Ferrante, et al.
- 1990
(Show Context)
Citation Context ...B PE 6 Fig. 3. Insertion of Preheader, Postbody and Postexit Nodes The dominance and loop nesting trees are easily updated, and control dependence construction proceeds normally on the augmented G CF =-=[10]-=-. As none of the new nodes are branches, control dependence edges among the original G CF nodes are unaffected. Construction of SSA form proceeds normally except for tweaks to the OE placement phase. ... |

21 |
Experiences using control dependence in PTRAN
- Cytron, Ferrante, et al.
- 1990
(Show Context)
Citation Context ... [12]. Loop-carried control dependence edges run from conditional branches out of a loop to the header block of the loop. Ignoring these edges leaves the acyclic forward control-dependence graph F CD =-=[11]-=-. 2.3 Static Single-Assignment (SSA) Form We focus on SSA form as an improved version of def-use chains. The nodes of the SSA-form def-use graph G SSA DU are the original program references plus pseud... |

8 | R.A.: Refining and defining the program dependence web
- Campbell, Krishna, et al.
- 1993
(Show Context)
Citation Context ...endence graph. The Program Dependence Web researchers have recently developed another revised definition of GSA form, which retains the major differences between with thinned GSA form described above =-=[6]-=-. 7.3 Program Dependence Graphs Ferrante, Ottenstein and Warren introduced the program dependence graph, comprising data dependences and their now-standard formulation of control dependence [14]. Grou... |

5 |
A Semantic Framework for Program Dependence
- Selke
- 1992
(Show Context)
Citation Context ...rren introduced the program dependence graph, comprising data dependences and their now-standard formulation of control dependence [14]. Groups at Wisconsin and Rice have developed semantics for PDGs =-=[18, 7, 23]-=-. Selke gives semantics for programs with arrays and arbitrary control flow, and shows how to insert valve nodes efficiently. Despite the greater maturity of PDGs as a program representation, they are... |