## An Exact Method for Analysis of Value-based Array Data Dependences (1993)

Venue: | In Sixth Annual Workshop on Programming Languages and Compilers for Parallel Computing |

Citations: | 81 - 14 self |

### BibTeX

@INPROCEEDINGS{Pugh93anexact,

author = {William Pugh and David Wonnacott},

title = {An Exact Method for Analysis of Value-based Array Data Dependences},

booktitle = {In Sixth Annual Workshop on Programming Languages and Compilers for Parallel Computing},

year = {1993},

publisher = {Springer-Verlag}

}

### OpenURL

### Abstract

Standard array data dependence testing algorithms give information about the aliasing of array references. If statement 1 writes a[5], and statement 2 later reads a[5], standard techniques described this as a flow dependence, even if there was an intervening write. We call a dependence between two references to the same memory location a memory-based dependence. In contrast, if there are no intervening writes, the references touch the same value and we call the dependence a value-based dependence. There has been a surge of recent work on value-based array data dependence analysis (also referred to as computation of array data-flow dependence information). In this paper, we describe a technique that is exact over programs without control flow (other than loops) and non-linear references. We compare our proposal with the technique proposed by Paul Feautrier, which is the other technique that is complete over the same domain as ours. We also compare our work with that of Tu and Padua, a ...

### Citations

705 |
Linear Algebra and its Applications
- Strang
- 1988
(Show Context)
Citation Context ...wildcard variables. Due to the way substitutions are performed, the mapping from ~x and ~ ff to ~x and ~y is 1-1, so the above equation is equivalent to the following: (where T + is the pseudoinverse =-=[Str88] of T ): f~x; ~y j 9-=-~ff s:t: " ~x ~y \Gamma ~c # 2 RowSpace(T ) " ~x ~ ff # = T + " ~x ~y \Gamma ~c #sAT + " ~x ~y \Gamma ~c # ~ b g 7 Each wildcard now appears in only one equality constraint that en... |

450 | The Omega Test: a Fast and Practical Integer Programming Algorithm for Dependence Analysis
- Pugh
- 1992
(Show Context)
Citation Context ...based dependences [PW92]. Data dependence testing is undecidable in general. Within the restricted domain described in Section 2, performing exact memory-based array dependence testing is NP-complete =-=[Pug92]-=-. Paul Feautrier [Fea91] showed that performing exact value-based dependence analysis of arrays within this restricted domain is decidable, and gave an algorithm for doing so. Many other researchers h... |

426 |
Supercompilers for Parallel and Vector Computers
- Zima
- 1991
(Show Context)
Citation Context ...ables that represent the values of the loop indices at the source and sink of the dependence and the values of the symbolic constants (e.g., n). The notation we use in the constraints is adapted from =-=[ZC91]-=-: A; B; : : : Refers to a specific array reference in a program I; I 0 ; I 00 ; : : : An iteration vector that represents a specific set of values of the loop variables for a loop nest. [A] The set of... |

212 | Dataflow Analysis of Array and Scalar References
- Feautrier
- 1991
(Show Context)
Citation Context .... Data dependence testing is undecidable in general. Within the restricted domain described in Section 2, performing exact memory-based array dependence testing is NP-complete [Pug92]. Paul Feautrier =-=[Fea91]-=- showed that performing exact value-based dependence analysis of arrays within this restricted domain is decidable, and gave an algorithm for doing so. Many other researchers have also studied value-b... |

195 | F.: Scanning polyhedra with do loops
- Ancourt, Irigoin
- 1991
(Show Context)
Citation Context ... elimination cannot eliminate an integer variable exactly, we can sometimes eliminate the variable exactly by introducing quasi-linear constraints (constraints containing floor and ceiling operators) =-=[AI91]-=-. For example, (9ff s:t: x = 5ff) j dx=5esbx=5c. In these cases, negation is easy to apply (e.g., :(dx=5esbx=5c) j (dx=5e ? bx=5c)). Although we can always eliminate one variable this way, we may not ... |

167 | Parametric Integer Programming
- Feautrier
- 1988
(Show Context)
Citation Context ...t is feasible. (Note: this check can be done on-the-fly while building the quast/LWT). 4.1.1 Parametric Integer Programming with the Omega test Paul Feautrier discusses parametric integer programming =-=[Fea88a]-=-, which is the problem of finding the optimal/maximal solution to a set of linear constraints over integer variables. For example, maxfi j isjsiskg = if jsk then j else k. Parametric integer programmi... |

155 |
Communication optimization and code generation for distributed memory machines
- Amarasinghe, Lam
- 1993
(Show Context)
Citation Context ...ndence (i.e., which iteration of which write). Since their scheme is targeted at privatizing arrays, the information they determine is sufficient. For other purposes, such as analyzing communications =-=[AL93]-=- and scalar replacement, additional information is needed. Another difference is that Tu's and Padua's method is based on determining which array elements are covered, while Feautrier's and our method... |

120 | Efficient and exact data dependence analysis - Maydan, Hennessy, et al. - 1991 |

108 |
Analysis of interprocedural side effects in a parallel programming environment
- Callahan, Kennedy
- 1988
(Show Context)
Citation Context ... linear, this does not make a difference. It could make a difference when non-linear subscripts occur, but it is unclear which would be advantageous. Tu and Padua use an extension of regular sections =-=[CK88]-=- to represent used, defined and exposed array sections. Their intersection (and their difference?) operators are approximate. If exact calculations are desired, our algorithms for simplifying Presburg... |

90 |
Array dataflow analysis and its use in array privatization
- Maydan, Amarasinghe, et al.
- 1993
(Show Context)
Citation Context ...irectly converting these expressions into disjunctive normal form would be infeasible for many real problems. The methods we describe in Section 3 should reduce this blow-up. The methods described by =-=[MAL93]-=- can handle only special cases of negated non-convex constraints. Paul Feautrier uses quasi-linear constraints (constraints containing floor and ceiling operations) to handle negation. Unfortunately, ... |

88 | Array Expansion - Feautrier - 1988 |

64 | Array privatization for parallel execution of loops - Li - 1992 |

61 |
A loop restructuring research tool
- Wolfe
- 1990
(Show Context)
Citation Context ...lax example does not require merging LWT's. 6 Implementation Status and Benchmark Availability The techniques described here are being implemented in our extended version of Michael Wolfe's tiny tool =-=[Wol91]-=-, which is available for anonymous ftp from ftp.cs.umd.edu:pub/omega. The programs analyzed in Table 1 come from a set of benchmark programs for comparing the performance and coverage of algorithms fo... |

57 | A practical data flow framework for array reference analysis and its use in optimizations - Duesterwald, Gupta, et al. - 1993 |

53 | Structured dataflow analysis for arrays and its use in an optimizing compilers - Gross, Steenkiste - 1990 |

45 |
A2 22pn upper bound on the complexity of presburger arithmetic
- OPPEN
- 1978
(Show Context)
Citation Context ...(possible leaving wildcards). When applying negation, we use the techniques of this section. The best known upper bound on the performance of an algorithm for verifying Presburger formulas is 2 2 2 n =-=[Opp78]-=-, and we have no reason to believe that this method be provide better worst-case performance. However, our method may be more efficient for many simple cases that arise in many applications. 4 Related... |

40 |
Uniform techniques for loop optimization
- Pugh
(Show Context)
Citation Context ...aries do not describe which iterations are involved in the dependence, and do not describe the effect of the values of symbolic constants. We therefore represent dependences with dependence relations =-=[Pug91]-=-. A dependence relation is a mapping from one iteration space to another, and is represented by a set of linear constraints on variables that represent the values of the loop indices at the source and... |

39 | Data dependence and data-flow analysis of arrays - Maydan, Amarasinghe, et al. - 1992 |

35 | Array privatization for shared and distributed memory machines (extended abstract - Tu, Padua - 1993 |

27 | Lazy array data-flow dependence analysis
- Maslov
- 1994
(Show Context)
Citation Context ...Many other researchers have also studied value-based array data dependence analysis, however no other work is complete over the same domain as Feautrier's, with the exception of recent work by Maslov =-=[Mas94]-=-. Some of these other methods handle larger domains (such as complicated control flow) but are not complete within that domain [Bra88, Rib90, GS90, Ros90, Li92, Fea91, MAL92, MAL93, DGS93]. We describ... |

26 | Going beyond integer programming with the Omega test to eliminate false data dependences
- Pugh, Wonnacott
- 1995
(Show Context)
Citation Context ...s critical for memory use optimizations. Array flow dependences in which the value written at the source is actually used at the sink of the dependence are referred to as value-based flow dependences =-=[PW92]-=- or data-flow dependences [May92, MAL93]. Dependence tests that are based on only the first four of the above criteria are said to find memory-based dependences [PW92]. Data dependence testing is unde... |

26 | Incremental dependence analysis - Rosene - 1990 |

22 | The importance of direct dependences for automatic parallelization - Brandes - 1988 |

20 | Static analysis of upper and lower bounds on dependences and parallelism
- Pugh, Wonnacott
- 1994
(Show Context)
Citation Context ...-based dependences are calculated (all times in milliseconds) Table 1: Evaluation of times required to perform analysis 15 apply them only in those cases. Some methods for doing this are described in =-=[PW93]-=-. Also, the methods described here are more susceptible to bad worst-case performance than the methods described in [Pug92, PW92]. We might want to be able to detect when computing exact value-based d... |

14 | Obtaining Dependence Vectors for Nested-Loop Computations - Ribas - 1990 |

8 | Definitions of Dependence Distance - Pugh - 1992 |