## Symbolic Program Analysis and Optimization for Parallelizing Compilers (1992)

### Cached

### Download Links

- [polaris.cs.uiuc.edu]
- [www.csrd.uiuc.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | Presented at the 5th Annual Workshop on Languages and Compilers for Parallel Computing |

Citations: | 35 - 3 self |

### BibTeX

@INPROCEEDINGS{Haghighat92symbolicprogram,

author = {Mohammad R. Haghighat and Constantine D. Polychronopoulos},

title = {Symbolic Program Analysis and Optimization for Parallelizing Compilers},

booktitle = {Presented at the 5th Annual Workshop on Languages and Compilers for Parallel Computing},

year = {1992},

pages = {3--5},

publisher = {Springer Verlag}

}

### OpenURL

### Abstract

A program flow analysis framework is proposed for parallelizing compilers. Within this framework, symbolic analysis is used as an abstract interpretation technique to solve many of the flow analysis problems in a unified way. Some of these problems are constant propagation, global forward substitution, detection of loop invariant computations, and induction variable substitution. The solution space of the above problems is much larger than that handled by existing compiler technology. It covers many of the cases in benchmark codes that other parallelizing compilers can not handle. Employing finite difference methods, the symbolic analyzer derives a functional representation of programs, which is used in dependence analysis. A systematic method for generalized strength reduction based on this representation is also presented. This results in an effective scheme for exploitation of parallelism and optimization of the code. Symbolic analysis also serves as a basis for other code generatio...

### Citations

1880 |
Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints
- Cousot, Cousot
- 1977
(Show Context)
Citation Context ...en, Cocke, and Schwartz among others [18, 3]. Kennedy in [35] gives a survey of data flow analysis techniques. Cousots were the first to propose an abstract interpretation framework for flow analysis =-=[19]-=-. Constant propagation has been extensively studied in the literature in the context of global flow analysis, and is used in all optimizing and parallelizing compilers. While the constant propagation ... |

839 | Efficiently Computing Static Single Assignment Form and version 1
- Cytron, Ferrante, et al.
- 1991
(Show Context)
Citation Context ...y decreasing the amount of information that is propagated. The compiler can achieve this goal by employing more sparse representations such as Global Value Graph [40] or Static Single Assignment form =-=[21, 14]-=-. More generally, an intelligent compiler can optimize the compilation process by taking advantage of optimizations similar to those used for code generation. For example, by an optimization analogous... |

572 | Automatic discovery of linear restraints among variables of a program
- Cousot, Halbwachs
- 1978
(Show Context)
Citation Context ...of iterations of the loop. Note that at this point the compiler may need to verify a constraint among some of the program variables. In some cases this can be done by method of constraint propagation =-=[20, 30]-=-. A typical example of a loop is a fixed do loop with the start value of 1 and stop value of n where n is a program variable that does not change within the loop. In this case n will be the only solut... |

426 |
Supercompilers for Parallel and Vector Computers
- Zima
- 1990
(Show Context)
Citation Context ...nduction variables substitution, the inverse of strength reduction, is used to eliminate the parallelism-inhibiting dependences that are the result of the way induction variables are defined and used =-=[46, 7, 47]-=-. In a study on compiling C programs for parallel execution, Allen and Johnson [6] discussed induction variable substitution and a heuristic solution for forward substitution, which is implemented in ... |

347 |
Dependence Analysis for Supercomputing
- Banerjee
(Show Context)
Citation Context ...zing compiler is derived from its ability to analyze loops and the precision of its dependence analysis. The dependence problem reduces to verification of a set of constraints among program variables =-=[10, 5]-=-, and is undecidable in the general case. However, heuristic methods exist to handle a large class of cases that happen in practice. The more precise information about flow of data and control in a pr... |

308 | A unified approach to global program optimization
- Kildall
- 1973
(Show Context)
Citation Context ...t propagation problem is undecidable in general [33], there are conservative algorithms that find subsets of constants in programs. Kildall in his lattice-theoretic approach to the data flow analysis =-=[36]-=- presented a general iterative algorithm for distributive frameworks which converges to the maximum fixed point solution of the problems. Reif and Lewis [41] used a sparse data structure, called Globa... |

308 | Constant Propagation with Conditional Branches
- Wegman, Zadeck
- 1991
(Show Context)
Citation Context ...xpressions, which is useful in program optimization techniques. Wegbreit showed how symbolic interpretation can be used to determine properties from a wellfounded property set [44]. Wegman and Zadeck =-=[45]-=- presented an efficient method for constant propagation when conditional branches are taken into consideration. Their algorithm does a form of constant propagation in combination with dead code elimin... |

302 |
Advanced Compiler Optimizations for Supercomputers
- Padua, Wolfe
- 1986
(Show Context)
Citation Context ... in j right after the loop. The above transformation , called induction variable substitution, is the inverse of strength reduction, and has been used in parallelizing compilers for a number of years =-=[37, 38]-=-. By this transformation, every occurrence of an induction variable is replaced by a linear function of its enclosing loop index variables. k = 0 do i = 1, n do i = 1, n do j = i - r, i + s do j = i -... |

293 | Automatic translation of FORTRAN programs to vector form
- Allen, Kennedy
- 1984
(Show Context)
Citation Context ...nduction variables substitution, the inverse of strength reduction, is used to eliminate the parallelism-inhibiting dependences that are the result of the way induction variables are defined and used =-=[46, 7, 47]-=-. In a study on compiling C programs for parallel execution, Allen and Johnson [6] discussed induction variable substitution and a heuristic solution for forward substitution, which is implemented in ... |

286 |
Bulldog: A compiler for VLIW architectures
- Ellis
- 1986
(Show Context)
Citation Context ...b) Figure 21: Example of induction variables in multiply nested loops. 4.4 Symbolic Division Some of the optimizing compilers that support some sort of symbolic analysis ignore the division operation =-=[25]-=-. This is due to the difficulty of handling the division operation when addition and multiplication are also involved. For example, if k is an integer then k=2+k=2 is not necessarily equal to k; it is... |

277 |
Flow Analysis of Computer Programs
- Hecht
- 1977
(Show Context)
Citation Context ...al structure of programs has been extensively studied in [28]. Loops may be defined by the notion of dominance relation [1], or by doing a depth first search (DFS) traversal of the control flow graph =-=[31]-=-. By loops, we mean natural loops as defined by the dominance relation. 3.3.1 Nesting of Loops It can be shown that when two natural loops have different headers, they are either disjoint or one is en... |

218 |
Detecting equality of variables in programs
- Alpern, Wegman, et al.
- 1988
(Show Context)
Citation Context ...ic parallelization of Perfect benchmark programs [24, 23]. Recently, there has been an increasing number of research focused on semantics-based static analysis of programs. Alpern, Wegman, and Zadeck =-=[8]-=- presented an algorithm for detecting many of the statically detectable classes of equalities by translating the programs into static single assignment (SSA) intermediate form. The SSA form of a progr... |

173 |
Global value numbers and redundant computations
- Rosen, Wegman, et al.
- 1988
(Show Context)
Citation Context ...ing the programs into static single assignment (SSA) intermediate form. The SSA form of a program facilitates the recognition of equivalences among program expressions that are not lexically identical=-=[42]-=-. Jouvelot and Dehbonei [32] presented a unified approach for the parallelization of generalized reductions. Ammarguellat and Harrison [9] used abstract interpretation to automatically recognize induc... |

160 |
Affine Relationships Among Variables of a Program
- Karr
- 1976
(Show Context)
Citation Context ...loops. This problem would turn into verification of a constraint among program variables at a program point. Automatic discovery of linear constraints among variables of a program has been studied in =-=[34, 11, 20]-=-, and applied to dependence analysis in [30]. In many of the practical cases, the compiler can come up with a formula that indicates how many iterations of a loop will be executed. For example, consid... |

127 |
Interprocedural dependence analysis and parallelization
- Burke, Cytron
- 1986
(Show Context)
Citation Context ...mory management issues such as scalar expansion [37] and array privatization [24] into consideration. Current trends in programming methodology increases the need for interprocedural program analysis =-=[12]-=-. Our proposed framework can easily be extended to handle function calls. However, precise handling of general recursive function calls is a challenge, although an approach similar to our loop analysi... |

124 | Global data flow analysis and iterative algorithms
- Kam, Ullman
- 1976
(Show Context)
Citation Context ...tensively studied in the literature in the context of global flow analysis, and is used in all optimizing and parallelizing compilers. While the constant propagation problem is undecidable in general =-=[33]-=-, there are conservative algorithms that find subsets of constants in programs. Kildall in his lattice-theoretic approach to the data flow analysis [36] presented a general iterative algorithm for dis... |

118 | The Theory - Aho, Ullman - 1972 |

113 |
Automatic Construction of Sparse Data Flow Evaluation Graphs
- Choi, Cytron, et al.
- 1991
(Show Context)
Citation Context ...y decreasing the amount of information that is propagated. The compiler can achieve this goal by employing more sparse representations such as Global Value Graph [40] or Static Single Assignment form =-=[21, 14]-=-. More generally, an intelligent compiler can optimize the compilation process by taking advantage of optimizations similar to those used for code generation. For example, by an optimization analogous... |

100 |
A program data flow analysis procedure
- Allen, Cocke
- 1976
(Show Context)
Citation Context ... symbolic constant propagation, and generalized strength reduction are contributions of this work. 2 Previous Work Early work on data flow analysis was done by Allen, Cocke, and Schwartz among others =-=[18, 3]-=-. Kennedy in [35] gives a survey of data flow analysis techniques. Cousots were the first to propose an abstract interpretation framework for flow analysis [19]. Constant propagation has been extensiv... |

92 | Experience in the Automatic Parallelization of Four PerfectBenchmark Programs
- Eigenmann, Hoeflinger, et al.
- 1991
(Show Context)
Citation Context ...tion, which is implemented in Titan compiler. The notion of generalized induction variables was introduced by Eigenman et al. in their study on automatic parallelization of Perfect benchmark programs =-=[24, 23]-=-. Recently, there has been an increasing number of research focused on semantics-based static analysis of programs. Alpern, Wegman, and Zadeck [8] presented an algorithm for detecting many of the stat... |

87 |
Dependence analysis for subscripted variables and its application to program transformations
- ALLEN
(Show Context)
Citation Context ...zing compiler is derived from its ability to analyze loops and the precision of its dependence analysis. The dependence problem reduces to verification of a set of constraints among program variables =-=[10, 5]-=-, and is undecidable in the general case. However, heuristic methods exist to handle a large class of cases that happen in practice. The more precise information about flow of data and control in a pr... |

86 | Interprocedural constant propagation
- Callahan, Cooper, et al.
(Show Context)
Citation Context ...onsideration. Their algorithm does a form of constant propagation in combination with dead code elimination to find the same class of constants that can be found by Wegbreit's method. Callahan et al. =-=[22]-=- presented a method for interprocedural constant propagation. Their method is based on an algorithm adapted from Reif and Lewis [41], and Wegman and Zadeck [45]. Induction variable detection, as a bas... |

84 |
Parafrase-2: An Environment for Parallelizing, Partitioning, Synchronizing and Scheduling Programs on Multiprocessors
- Polychronopoulos, Girkar, et al.
- 1989
(Show Context)
Citation Context ...for doing a precise and yet efficient program flow analysis for parallelizing compilers. This framework, which is based on symbolic analysis, is implemented as the flow analysis scheme of Parafrase-2 =-=[39]-=-. Symbolic analysis is an abstract interpretation method in which values of program expressions are represented by symbolic expressions. Parafrase-2 uses symbolic analysis for a wide range of program ... |

73 |
Reduction of operator strength
- Allen, Cooke, et al.
- 1981
(Show Context)
Citation Context ... is based on an algorithm adapted from Reif and Lewis [41], and Wegman and Zadeck [45]. Induction variable detection, as a basis for strength reduction, has been extensively studied in the literature =-=[18, 2, 26, 27, 17, 4, 1]-=-. Induction variables substitution, the inverse of strength reduction, is used to eliminate the parallelism-inhibiting dependences that are the result of the way induction variables are defined and us... |

56 |
A survey of data flow analysis techniques
- Kennedy
- 1981
(Show Context)
Citation Context ...ropagation, and generalized strength reduction are contributions of this work. 2 Previous Work Early work on data flow analysis was done by Allen, Cocke, and Schwartz among others [18, 3]. Kennedy in =-=[35]-=- gives a survey of data flow analysis techniques. Cousots were the first to propose an abstract interpretation framework for flow analysis [19]. Constant propagation has been extensively studied in th... |

53 |
Compiling c for vectorization, parallelization, and inline expansion
- Allen, Johnson
- 1988
(Show Context)
Citation Context ...he parallelism-inhibiting dependences that are the result of the way induction variables are defined and used [46, 7, 47]. In a study on compiling C programs for parallel execution, Allen and Johnson =-=[6]-=- discussed induction variable substitution and a heuristic solution for forward substitution, which is implemented in Titan compiler. The notion of generalized induction variables was introduced by Ei... |

44 |
Symbolic dependence analysis for high performance parallelizing compilers
- Haghighat, Polychronopoulos
- 1990
(Show Context)
Citation Context ...of iterations of the loop. Note that at this point the compiler may need to verify a constraint among some of the program variables. In some cases this can be done by method of constraint propagation =-=[20, 30]-=-. A typical example of a loop is a fixed do loop with the start value of 1 and stop value of n where n is a program variable that does not change within the loop. In this case n will be the only solut... |

41 |
Programming languages and their compilers
- Cocke, Schwartz
- 1970
(Show Context)
Citation Context ... symbolic constant propagation, and generalized strength reduction are contributions of this work. 2 Previous Work Early work on data flow analysis was done by Allen, Cocke, and Schwartz among others =-=[18, 3]-=-. Kennedy in [35] gives a survey of data flow analysis techniques. Cousots were the first to propose an abstract interpretation framework for flow analysis [19]. Constant propagation has been extensiv... |

40 | Symbolic Program Analysis in Almost-linear Time
- Reif, Tarjan
- 1981
(Show Context)
Citation Context ...compiler efficiency can be increased by decreasing the amount of information that is propagated. The compiler can achieve this goal by employing more sparse representations such as Global Value Graph =-=[40]-=- or Static Single Assignment form [21, 14]. More generally, an intelligent compiler can optimize the compilation process by taking advantage of optimizations similar to those used for code generation.... |

38 |
Symbolic evaluation and the global value graph
- Reif, Lewis
- 1977
(Show Context)
Citation Context ...eoretic approach to the data flow analysis [36] presented a general iterative algorithm for distributive frameworks which converges to the maximum fixed point solution of the problems. Reif and Lewis =-=[41]-=- used a sparse data structure, called Global Value Graph, to find the same information that can be found by Kildall's algorithm, but in a more efficient way. Reif and Tarjan employed Global Value Grap... |

34 |
Automatic recognition of induction variables and recurrence relations by abstract interpretation
- Ammerguallat, Harrison
- 1990
(Show Context)
Citation Context ...es among program expressions that are not lexically identical[42]. Jouvelot and Dehbonei [32] presented a unified approach for the parallelization of generalized reductions. Ammarguellat and Harrison =-=[9]-=- used abstract interpretation to automatically recognize induction variables and recurrence relations by matching them with patterns from a table of recurrence templates. 3 Symbolic Analysis of Progra... |

31 |
Symbolic evaluation and the analysis of programs
- CHEATHAM, HOLLOWAY, et al.
- 1979
(Show Context)
Citation Context ...rns from a table of recurrence templates. 3 Symbolic Analysis of Programs Symbolic analysis is a program analysis method in which values of program expressions are represented by symbolic expressions =-=[13, 15, 16]-=-. In symbolic execution, functional behavior of a program is derived from algebraic representation of its computations. This makes it possible to discover the relationship between different computatio... |

25 |
Applications of symbolic evaluation
- CLARKE, RICHARDSON
- 1985
(Show Context)
Citation Context ...rns from a table of recurrence templates. 3 Symbolic Analysis of Programs Symbolic analysis is a program analysis method in which values of program expressions are represented by symbolic expressions =-=[13, 15, 16]-=-. In symbolic execution, functional behavior of a program is derived from algebraic representation of its computations. This makes it possible to discover the relationship between different computatio... |

24 |
editors. Symbolic evaluation methods for program analysis
- Clarke, Richardson
- 1981
(Show Context)
Citation Context ...rns from a table of recurrence templates. 3 Symbolic Analysis of Programs Symbolic analysis is a program analysis method in which values of program expressions are represented by symbolic expressions =-=[13, 15, 16]-=-. In symbolic execution, functional behavior of a program is derived from algebraic representation of its computations. This makes it possible to discover the relationship between different computatio... |

24 | Restructuring Fortran Programs for Cedar
- Eigenmann, Hoeflinger, et al.
- 1991
(Show Context)
Citation Context ...tion, which is implemented in Titan compiler. The notion of generalized induction variables was introduced by Eigenman et al. in their study on automatic parallelization of Perfect benchmark programs =-=[24, 23]-=-. Recently, there has been an increasing number of research focused on semantics-based static analysis of programs. Alpern, Wegman, and Zadeck [8] presented an algorithm for detecting many of the stat... |

23 |
Property extraction m well-founded property sets
- WEGBREIT
- 1975
(Show Context)
Citation Context ...xpressions to symbolic expressions, which is useful in program optimization techniques. Wegbreit showed how symbolic interpretation can be used to determine properties from a wellfounded property set =-=[44]-=-. Wegman and Zadeck [45] presented an efficient method for constant propagation when conditional branches are taken into consideration. Their algorithm does a form of constant propagation in combinati... |

22 |
Induction variables in very high-level languages
- Fong, Ullman
- 1976
(Show Context)
Citation Context ... is based on an algorithm adapted from Reif and Lewis [41], and Wegman and Zadeck [45]. Induction variable detection, as a basis for strength reduction, has been extensively studied in the literature =-=[18, 2, 26, 27, 17, 4, 1]-=-. Induction variables substitution, the inverse of strength reduction, is used to eliminate the parallelism-inhibiting dependences that are the result of the way induction variables are defined and us... |

21 |
Functional Parallelism: Theoretical Foundations and Implementations
- Girkar
- 1991
(Show Context)
Citation Context ...n its ability to analyze loops for extraction and exploitation of the available parallelism. The role and importance of loops in the hierarchical structure of programs has been extensively studied in =-=[28]-=-. Loops may be defined by the notion of dominance relation [1], or by doing a depth first search (DFS) traversal of the control flow graph [31]. By loops, we mean natural loops as defined by the domin... |

14 |
Techniques for improving the inherent parallelism in programs
- Wolfe
- 1978
(Show Context)
Citation Context ...nduction variables substitution, the inverse of strength reduction, is used to eliminate the parallelism-inhibiting dependences that are the result of the way induction variables are defined and used =-=[46, 7, 47]-=-. In a study on compiling C programs for parallel execution, Allen and Johnson [6] discussed induction variable substitution and a heuristic solution for forward substitution, which is implemented in ... |

13 |
A Unified Semantic Approach for the Vectorization and Parallelization of Generalized Reductions
- Jouvelot, Dehbonei
(Show Context)
Citation Context ... single assignment (SSA) intermediate form. The SSA form of a program facilitates the recognition of equivalences among program expressions that are not lexically identical[42]. Jouvelot and Dehbonei =-=[32]-=- presented a unified approach for the parallelization of generalized reductions. Ammarguellat and Harrison [9] used abstract interpretation to automatically recognize induction variables and recurrenc... |

8 |
Applications of lattice algebra to loop optimization
- Fong, Kam, et al.
(Show Context)
Citation Context ... is based on an algorithm adapted from Reif and Lewis [41], and Wegman and Zadeck [45]. Induction variable detection, as a basis for strength reduction, has been extensively studied in the literature =-=[18, 2, 26, 27, 17, 4, 1]-=-. Induction variables substitution, the inverse of strength reduction, is used to eliminate the parallelism-inhibiting dependences that are the result of the way induction variables are defined and us... |

7 |
The Parafrase project's Fortran analyzer major module documentation
- Leasure
- 1985
(Show Context)
Citation Context ... in j right after the loop. The above transformation , called induction variable substitution, is the inverse of strength reduction, and has been used in parallelizing compilers for a number of years =-=[37, 38]-=-. By this transformation, every occurrence of an induction variable is replaced by a linear function of its enclosing loop index variables. k = 0 do i = 1, n do i = 1, n do j = i - r, i + s do j = i -... |

2 |
Linear and non-linear approximate invariants
- Berman, Markowsky
- 1976
(Show Context)
Citation Context ...loops. This problem would turn into verification of a constraint among program variables at a program point. Automatic discovery of linear constraints among variables of a program has been studied in =-=[34, 11, 20]-=-, and applied to dependence analysis in [30]. In many of the practical cases, the compiler can come up with a formula that indicates how many iterations of a loop will be executed. For example, consid... |

1 |
Symbolic Program Analysis for High Performance Parallelizing Compilers
- Haghighat
- 1993
(Show Context)
Citation Context ...ists a generalized induction expression of the form v inside the loop L. Lemma 4.1 The problem of whether a given variable, appearing in a statement of a loop, is an induction variable is undecidable =-=[29]-=-. Note that an induction variable of a loop may have different characteristic functions at different points of the same loop. It is further possible that the same variable, at some point of the loop, ... |

1 |
Finite Differences and Numerical Analysis
- Saxena
- 1988
(Show Context)
Citation Context ...n . Since / is of degree m, the part arising from /(n) will be zero in the (m + 1) th and succeeding differences, and therefore these differences will form a geometric progression with common ratio r =-=[43]-=-. For example, if '(n) = c + bn + ar n then \Delta'(n) = b + a(r \Gamma 1)r n ; \Delta 2 '(n) = a(r \Gamma 1) 2 r n ; \Delta 3 '(n) = a(r \Gamma 1) 3 r n ; . . . \Delta k '(n) = a(r \Gamma 1) k r n : ... |