Data dependence analysis on multi-dimensional array references

An efficient and precise data dependence analysis is the key to the success of a parallelizing compiler because it is required in almost all phases of the parallelism detection and enhancement in such compilers. However, existing test algorithms are quite weak in analyzing multi-dimensional array references, which are usually where the parallelism is in most programs. In this paper, a new algorithm, called λ-test, is presented for an efficient and accurate data dependence analysis on multi-dimensional array references. It achieves high efficiency and high accuracy at the same time, which is in general not allowed in previous algorithms. This algorithm has been implemented in Parafrase [Wolf82]. Some experimental results are also presented to show its effectiveness.

[1]  Pen-Chung Yew,et al.  Intraprocedural and interprocedural data dependence analysis for parallel computing , 1989 .

[2]  David A. Padua,et al.  Dependence graphs and compiler optimizations , 1981, POPL '81.

[3]  David R. Wallace,et al.  Dependence of multi-dimensional array references , 1988, ICS '88.

[4]  Nicolas Halbwachs,et al.  Automatic discovery of linear restraints among variables of a program , 1978, POPL.

[5]  Utpal Banerjee,et al.  Dependence analysis for supercomputing , 1988, The Kluwer international series in engineering and computer science.

[6]  John Randal Allen,et al.  Dependence analysis for subscripted variables and its application to program transformations , 1983 .

[7]  Brian T. Smith,et al.  Matrix Eigensystem Routines — EISPACK Guide , 1974, Lecture Notes in Computer Science.

[8]  B. S. Garbow,et al.  Matrix Eigensystem Routines — EISPACK Guide , 1974, Lecture Notes in Computer Science.

[9]  Alain Lichnewsky,et al.  Introducing symbolic problem solving techniques in the dependence testing phases of a vectorizer , 1988, ICS '88.

[10]  B. S. Garbow,et al.  Matrix Eigensystem Routines — EISPACK Guide , 1974, Lecture Notes in Computer Science.

[11]  Zhiyu Shen,et al.  An Empirical Study on Array Subscripts and Data Dependencies , 1989, ICPP.

[12]  Robert Henry Kuhn,et al.  Optimization and interconnection complexity for: parallel processors, single-stage networks, and decision trees , 1980 .

[13]  Paul Feautrier,et al.  Direct parallelization of call statements , 1986, SIGPLAN '86.

[14]  Robert E. Shostak,et al.  Deciding Linear Inequalities by Computing Loop Residues , 1981, JACM.