## Nonlinear Array Dependence Analysis (1991)

Citations: | 75 - 6 self |

### BibTeX

@MISC{Pugh91nonlineararray,

author = {William Pugh and David Wonnacott},

title = {Nonlinear Array Dependence Analysis },

year = {1991}

}

### Years of Citing Articles

### OpenURL

### Abstract

Standard array data dependence techniques can only reason about linear constraints. There has also been work on analyzing some dependences involving polynomial constraints. Analyzing array data dependences in real-world programs requires handling many "unanalyzable" terms: subscript arrays, run-time tests, function calls. The standard approach to analyzing such programs has been to omit and ignore any constraints that cannot be reasoned about. This is unsound when reasoning about value-based dependences and whether privatization is legal. Also, this prevents us from determining the conditions that must be true to disprove the dependence. These conditions could be checked by a run-time test or verified by a programmer or aggressive, demand-driven interprocedural analysis. We describe a solution to these problems. Our solution makes our system sound and more accurate for analyzing value-based dependences and derives conditions that can be used to disprove dependences. We also give some p...

### Citations

10903 |
Computers and Intractability: A Guide to the Theory of NP-Completeness
- Johnson
- 1977
(Show Context)
Citation Context ... this way, so testing for the existence of a dependence over this restricted domain is equivalent to testing for integer solutions to a conjunction of affine constraints. This problem is NP-Complete [=-=Garey and Johnson 1979-=-]. To ensure efficient compilation, many compilers employ tests that have low-order polynomial time bounds, but are not exact over this entire domain, such as Banerjee 's inequalities or the GCD test ... |

839 | Efficiently Computing Static Single Assignment Form and version 1 - Cytron, Ferrante, et al. - 1991 |

448 | The omega test: a fast and practical integer programming algorithm for dependence analysis
- Pugh
- 1993
(Show Context)
Citation Context ...urier's method [Huynh et al. 1992; Imbert 1993]. However, Pugh showed that the Omega test has low-order polynomial complexity for many of the cases that are handled exactly by traditional techniques [=-=Pugh 1992]. Thus, w-=-e can also guarantee efficient compilation by applying the Omega test only in cases where it has been proven efficient, or by using a timer to prevent "runaway" behavior. In practice, limiti... |

441 | Optimizing Supercompilers for Supercomputers - Wolfe - 1989 |

212 | The LRPD test: Speculative run-time parallelization of loops with privatization and reduction parallelization - Rauchwerger, Padua - 1995 |

203 | The PERFECT Club Benchmarks: Effective Performance Evaluation of Supercomputers - Berry, Chen, et al. - 1989 |

173 |
Global value numbers and redundant computations
- Rosen, Wegman, et al.
- 1988
(Show Context)
Citation Context ...es computed at different points must be the same. When a loop contains one or more definitions of scalar variables, we use a function symbol for each SSA node [Alpern et al. 1988; Cytron et al. 1991; =-=Rosen et al. 1988-=-], rather than a symbol for each use of a variable. If we determine that two occurrences of a nonaffine expression must have the same value, we use the same function symbol for them. Also, an expressi... |

165 | Parametric integer programming
- Feautrier
- 1988
(Show Context)
Citation Context ...ier then finds K p S (y), the maximum element of Q p S (y), for each p and S. The constraints describing Q p S (y) are all affine, so K p S (y) can be calculated using parametric integer programming [=-=Feautrier 1988-=-]. This parametric integer programming problem (or the problem of finding the lexicographically maximum I that satisfies any Presburger formula Q(I)) can be restated in terms of Presburger arithmetic ... |

113 | Loop Transformations for Restructuring Compilers: The Foundations - Banerjee - 1993 |

108 |
Analysis of interprocedural side effects in a parallel programming environment
- Callahan, Kennedy
- 1988
(Show Context)
Citation Context ...mulas, see Wonnacott [1995]. 6.4.1 Tu and Padua's Privatization Analysis (for the Polaris Compiler). Tu and Padua [Padua et al. 1993; Tu and Padua 1992; Tu 1995] use an extension of regular sections [=-=Callahan and Kennedy 1988-=-] to represent defined and exposed array sections. They use data-flow equations [Aho et al. 1986] to produce a description of the parts of each array that are read from some previous loop iteration. I... |

92 |
Theorem proving in arithmetic without multiplication
- Cooper
- 1972
(Show Context)
Citation Context ... constraints on integer variables with the logical operations , , and :, and the quantifiers 8 and 9. There are a number of algorithms for testing the satisfiability of arbitrary Presburger formulas [=-=Cooper 1972-=-; Kreisel and Krevine 1967; Pugh and Wonnacott 1993]. This problem appears to have worst-case complexity of 2 2 2 O(n) [Oppen 1978]. 4. HANDLING NONAFFINE TERMS We have developed two techniques for pe... |

92 |
Dataflow Analysis of Scalar and Array References
- Feautrier
- 1991
(Show Context)
Citation Context ... variables: ---Extend the pairwise methods typically used for array data dependence to recognize array kills [Barthou et al. 1996; 1997; Brandes 1988; Collard et al. 1995; Collard and Feautrier 1994; =-=Feautrier 1991-=-; Maslov 1994; Maydan et al. 1992; 1993; Ribas 1990; Voevodin 1992a; 1992b]. ---Extend scalar data-flow methods by recording which array sections are killed and/or defined [Gross and Steenkiste 1990; ... |

90 |
Array dataflow analysis and its use in array privatization
- Maydan, Amarasinghe, et al.
- 1993
(Show Context)
Citation Context ...ce or evidence that it is not a Constraint-Based Array Dependence Analysis \Delta 37 problem. The quasts produced by combining quasts from several writes may contain infeasible paths [Feautrier 1991; =-=Maydan et al. 1993-=-]. To enable compile-time transformations such as privatization, it is necessary to determine which paths are feasible (just as we must perform satisfiability tests on the conjuncts we produce after c... |

88 | Array Expansion - Feautrier - 1988 |

80 | An exact method for the analysis of value-based array data dependences
- PUGH, WONNACOTT
- 1993
(Show Context)
Citation Context ...the logical operations , , and :, and the quantifiers 8 and 9. There are a number of algorithms for testing the satisfiability of arbitrary Presburger formulas [Cooper 1972; Kreisel and Krevine 1967; =-=Pugh and Wonnacott 1993-=-]. This problem appears to have worst-case complexity of 2 2 2 O(n) [Oppen 1978]. 4. HANDLING NONAFFINE TERMS We have developed two techniques for performing analysis in the presence of nonaffine term... |

76 |
The Omega Library Interface Guide
- Kelly, Maslov, et al.
- 1996
(Show Context)
Citation Context ...ns by the simple techniques given in Chapter 5 of Wonnacott [1995]. The following studies of accuracy, speed, and types of constraints were performed with version 0.97 of the Omega Library and Petit [=-=Kelly et al. 1995-=-]. This software, and the input files used for these studies, are available from ftp://ftp.cs.umd.edu/pub/omega/davewThesis. 20 \Delta W. Pugh and D. Wonnacott Table I. Accuracies of Various Tests, Me... |

73 |
Eliminating false data dependences using the omega test
- Pugh, Wonnacott
- 1992
(Show Context)
Citation Context .... In Section 4 we present our techniques for using uninterpreted function symbols to represent nonlinear terms. These program analysis algorithms have been refined somewhat from their original forms [=-=Pugh and Wonnacott 1992-=-; 1993; 1994b; 1995a]. Our techniques rely on constraint manipulation algorithms that have exponential worst-case complexity. However, our analysis is quite efficient in practice. Sections 2, 3, and 4... |

69 | Fuzzy array dataflow analysis
- Collard, Barthou, et al.
- 1995
(Show Context)
Citation Context ...ependence Analysis There are two basic approaches to analyzing the flow of values in array variables: ---Extend the pairwise methods typically used for array data dependence to recognize array kills [=-=Barthou et al. 1996-=-; 1997; Brandes 1988; Collard et al. 1995; Collard and Feautrier 1994; Feautrier 1991; Maslov 1994; Maydan et al. 1992; 1993; Ribas 1990; Voevodin 1992a; 1992b]. ---Extend scalar data-flow methods by ... |

65 | A practical decision procedure for arithmetic with function symbols - Shostak - 1979 |

64 | C.W.: Interactive parallel programming using the parascope editor
- Kennedy, McKinley, et al.
- 1991
(Show Context)
Citation Context ...ch faster than the full LRPD test. 6.3.2 Interactive Parallelization Tools. Interactive parallelization tools often let the programmer delete or ignore arcs in the dependence graph [Hall et al. 1993; =-=Kennedy et al. 1990-=-]. This could be used as an alternative to the addition of assertions to remove dependences. The use of assertions has several advantages over deletion of dependence arcs: a single assertion often dis... |

64 | Array privatization for parallel execution of loops
- Li
- 1992
(Show Context)
Citation Context ...; Maslov 1994; Maydan et al. 1992; 1993; Ribas 1990; Voevodin 1992a; 1992b]. ---Extend scalar data-flow methods by recording which array sections are killed and/or defined [Gross and Steenkiste 1990; =-=Li 1992-=-; Padua et al. 1993; Rosene 1990; Tu and Padua 1992; Tu 1995]. Both approaches have merits. In general, the first produces more accurate information about the dependence (such as the dependence distan... |

53 | Structured dataflow analysis for arrays and its use in an optimizing compilers
- Gross, Steenkiste
- 1990
(Show Context)
Citation Context ...utrier 1994; Feautrier 1991; Maslov 1994; Maydan et al. 1992; 1993; Ribas 1990; Voevodin 1992a; 1992b]. ---Extend scalar data-flow methods by recording which array sections are killed and/or defined [=-=Gross and Steenkiste 1990-=-; Li 1992; Padua et al. 1993; Rosene 1990; Tu and Padua 1992; Tu 1995]. Both approaches have merits. In general, the first produces more accurate information about the dependence (such as the dependen... |

45 |
A2 22pn upper bound on the complexity of presburger arithmetic
- OPPEN
- 1978
(Show Context)
Citation Context ...hms for testing the satisfiability of arbitrary Presburger formulas [Cooper 1972; Kreisel and Krevine 1967; Pugh and Wonnacott 1993]. This problem appears to have worst-case complexity of 2 2 2 O(n) [=-=Oppen 1978-=-]. 4. HANDLING NONAFFINE TERMS We have developed two techniques for performing analysis in the presence of nonaffine terms. In the first, we simply introduce a new constraint, unknown, that represents... |

45 | The Privatizing DOALL test: A run-time technique for DOALL loop identification and array privatization
- Rauchwerger, Padua
- 1994
(Show Context)
Citation Context ...s general, can show that a dependence is not conditional, and can be combined with our work on value-based analysis. 6.3.1 Rauchwerger and Padua's LRPD Test (for the Polaris Compiler). The LRPD test [=-=Rauchwerger and Padua 1994-=-; 1995] was designed to parallelize loops using parallel reductions and privatization, in cases where static analysis cannot determine the legality of these transformations. The LRPD test tries a tent... |

44 | Symbolic dependence analysis for high performance parallelizing compilers - Haghighat, Polychronopoulos - 1990 |

43 | Polaris: A New Generation Parallelizing Compiler for MPPs
- Padua, Eigenmann
- 1993
(Show Context)
Citation Context ...1994; Maydan et al. 1992; 1993; Ribas 1990; Voevodin 1992a; 1992b]. ---Extend scalar data-flow methods by recording which array sections are killed and/or defined [Gross and Steenkiste 1990; Li 1992; =-=Padua et al. 1993-=-; Rosene 1990; Tu and Padua 1992; Tu 1995]. Both approaches have merits. In general, the first produces more accurate information about the dependence (such as the dependence distance), but the second... |

41 | Onthe automatic parallelization of the Perfect benchmarks
- Eigenmann, Hoeflinger, et al.
- 1998
(Show Context)
Citation Context ...ntioned study suggests that we can, in practice, perform array alias analysis with algorithms that are exact (at least for "affine dependences"). Unfortunately, recent studies [Eigenmann et =-=al. 1991; Eigenmann et al. 1998-=-; Maydan 1992] of the Perfect Club Benchmarks [Berry et al. 1989] show that factors other than accuracy of alias analysis for affine dependences hold the key to improving automatic parallelization. Pa... |

41 | Automatic Array Privatization and Demand-Driven Symbolic Analysis - Tu - 1995 |

40 |
Uniform techniques for loop optimization
- Pugh
(Show Context)
Citation Context ...re domain, such as Banerjee 's inequalities or the GCD test (or both). See Wolfe [1989], Zima and Chapman [1990], and Banerjee [1993] for a discussion of these techniques. Pugh's original Omega test [=-=Pugh 1991-=-; 1992] handles arbitrary conjunctions of affine constraints, using a combination of substitution and an adaptation of Fourier's method of variable elimination to integer variables. This algorithm is ... |

35 |
Array privatization for shared and distributed memory machines (extended abstract
- Tu, Padua
- 1993
(Show Context)
Citation Context ...Ribas 1990; Voevodin 1992a; 1992b]. ---Extend scalar data-flow methods by recording which array sections are killed and/or defined [Gross and Steenkiste 1990; Li 1992; Padua et al. 1993; Rosene 1990; =-=Tu and Padua 1992-=-; Tu 1995]. Both approaches have merits. In general, the first produces more accurate information about the dependence (such as the dependence distance), but the second is more accurate in the presenc... |

34 | Symbolic analysis techniques needed or the e�ective parallelization of Perfect benchmarks - Blume, Eigenmann - 1994 |

30 | Optimization within a unified transformation framework
- Kelly
- 1996
(Show Context)
Citation Context ...e need complete dependence relations, not just direction vectors, to perform our additional analysis. This additional information can also play an important role in program transformation [Pugh 1991; =-=Kelly 1996-=-]. 6.2.1 Blume's Range Test (for the Polaris compiler). The Range Test [Blume 1995] was developed to perform (memory-based) data dependence analysis in the presence of nonlinear terms, as part of the ... |

29 | Accurate Analysis of Array References
- Maydan
- 1992
(Show Context)
Citation Context ...that we can, in practice, perform array alias analysis with algorithms that are exact (at least for "affine dependences"). Unfortunately, recent studies [Eigenmann et al. 1991; Eigenmann et =-=al. 1998; Maydan 1992-=-] of the Perfect Club Benchmarks [Berry et al. 1989] show that factors other than accuracy of alias analysis for affine dependences hold the key to improving automatic parallelization. Parallelization... |

27 | Lazy array data-flow dependence analysis
- Maslov
- 1994
(Show Context)
Citation Context ...xtend the pairwise methods typically used for array data dependence to recognize array kills [Barthou et al. 1996; 1997; Brandes 1988; Collard et al. 1995; Collard and Feautrier 1994; Feautrier 1991; =-=Maslov 1994-=-; Maydan et al. 1992; 1993; Ribas 1990; Voevodin 1992a; 1992b]. ---Extend scalar data-flow methods by recording which array sections are killed and/or defined [Gross and Steenkiste 1990; Li 1992; Padu... |

26 | Going beyond integer programming with the Omega test to eliminate false data dependences
- Pugh, Wonnacott
- 1995
(Show Context)
Citation Context ...xecuted. If we examine every dependence that is conditional in this sense, there will be far too many of these "false alarms." We solve this problem of false alarms by introducing the gist o=-=peration [Pugh and Wonnacott 1995-=-a]. The gist of a set of constraints p with respect to a set of given constraints q is a simple system of constraints such that (gist p given q) q j pq. Informally, we think of gist p given q as the c... |

26 |
Incremental dependence analysis
- Rosene
- 1990
(Show Context)
Citation Context ... 1992; 1993; Ribas 1990; Voevodin 1992a; 1992b]. ---Extend scalar data-flow methods by recording which array sections are killed and/or defined [Gross and Steenkiste 1990; Li 1992; Padua et al. 1993; =-=Rosene 1990-=-; Tu and Padua 1992; Tu 1995]. Both approaches have merits. In general, the first produces more accurate information about the dependence (such as the dependence distance), but the second is more accu... |

22 |
The importance of direct dependences for automatic parallelization
- Brandes
- 1988
(Show Context)
Citation Context ...e two basic approaches to analyzing the flow of values in array variables: ---Extend the pairwise methods typically used for array data dependence to recognize array kills [Barthou et al. 1996; 1997; =-=Brandes 1988-=-; Collard et al. 1995; Collard and Feautrier 1994; Feautrier 1991; Maslov 1994; Maydan et al. 1992; 1993; Ribas 1990; Voevodin 1992a; 1992b]. ---Extend scalar data-flow methods by recording which arra... |

22 | Static and dynamic evaluation of data dependence analysis - Petersen, Padua - 1993 |

21 | Symbolic analysis techniques for effective automatic parallelization
- Blume
- 1995
(Show Context)
Citation Context ...ion variable takes on a strictly increasing sequence of values (using this fact requires our techniques from Section 4). Other information, such as information about the possible ranges of variables [=-=Blume 1995-=-], might also help to eliminate dependences or improve our conditional analysis. We have not performed extensive studies of the impact of such additional information on our techniques. 2.2 Constraints... |

21 | De-linearization: an efficient way to break multi-loop dependence equations
- Maslov
- 1992
(Show Context)
Citation Context ...ume also found that, for the set of benchmarks studied, the Range Test found more parallel loops, and parallelized more of the important loops. Blume observes that Maslov's delinearization technique [=-=Maslov 1992-=-] can be used to convert nonlinear tests into a set of independent linear tests, which could then be handled by our system. However, this does not work everywhere the Range Test does, since the Range ... |

20 | Static analysis of upper and lower bounds on dependences and parallelism - Pugh, Wonnacott - 1994 |

19 |
Detecting equality of values in programs
- Alpern, Wegman, et al.
- 1988
(Show Context)
Citation Context ...of our analysis by recognizing when values computed at different points must be the same. When a loop contains one or more definitions of scalar variables, we use a function symbol for each SSA node [=-=Alpern et al. 1988-=-; Cytron et al. 1991; Rosen et al. 1988], rather than a symbol for each use of a variable. If we determine that two occurrences of a nonaffine expression must have the same value, we use the same func... |

16 | Experiences with constraint-based array dependence analysis
- Pugh, Wonnacott
- 1994
(Show Context)
Citation Context ...by using a timer to prevent "runaway" behavior. In practice, limiting the use of the Omega test does not seem to be necessary. We studied the behavior of the Omega test on a suite of benchma=-=rk codes [Pugh and Wonnacott 1994-=-a] and found that the number of constraints in the system did not increase at all in any of the 1144 dependence tests performed. This behavior seems to be due to the fact that the constraint sets are ... |

15 | Experiences using the ParaScope Editor, an interactive parallel programming tool
- Hall, Harvey, et al.
- 1993
(Show Context)
Citation Context ...itions might be much faster than the full LRPD test. 6.3.2 Interactive Parallelization Tools. Interactive parallelization tools often let the programmer delete or ignore arcs in the dependence graph [=-=Hall et al. 1993-=-; Kennedy et al. 1990]. This could be used as an alternative to the addition of assertions to remove dependences. The use of assertions has several advantages over deletion of dependence arcs: a singl... |

15 | Simplifying Polynomial Constraints Over Integers to Make Dependence Analysis More Precise - Maslov, Pugh - 1994 |

14 | Fourier’s Elimination: Which to Choose
- Imbert
- 1993
(Show Context)
Citation Context ...teger variables. This algorithm is exponential in the worst case, due to the potential for wild growth in the number of constraints as variables are eliminated by Fourier's method [Huynh et al. 1992; =-=Imbert 1993-=-]. However, Pugh showed that the Omega test has low-order polynomial complexity for many of the cases that are handled exactly by traditional techniques [Pugh 1992]. Thus, we can also guarantee effici... |

14 |
Obtaining Dependence Vectors for Nested-Loop Computations
- Ribas
- 1990
(Show Context)
Citation Context ...ed for array data dependence to recognize array kills [Barthou et al. 1996; 1997; Brandes 1988; Collard et al. 1995; Collard and Feautrier 1994; Feautrier 1991; Maslov 1994; Maydan et al. 1992; 1993; =-=Ribas 1990-=-; Voevodin 1992a; 1992b]. ---Extend scalar data-flow methods by recording which array sections are killed and/or defined [Gross and Steenkiste 1990; Li 1992; Padua et al. 1993; Rosene 1990; Tu and Pad... |

12 | Dependence analysis of arrays subscripted by index arrays - McKinley - 1990 |

10 | Dynamic Dependance Analysis: A Novel Method for Data Dependence Evaluation
- Petersen, Padua
- 1992
(Show Context)
Citation Context ... though in a few cases programmer assertions are needed to indicate that one of our conditional dependences is in fact infeasible. 6.1.2 Petersen and Padua (of the Polaris Group). Petersen and Padua [=-=Petersen and Padua 1992-=-; 1993; 1996] also compared a variety of static memory-based dependence tests to each other, and to the run-time behavior of the programs. This test involved a much larger set of benchmarks than those... |

7 | Theorem proving in arithmetic with multiplication - COOPER - 1972 |