Simplification of array access patterns for compiler optimizations

Existing array region representation techniques are sensitive to the complexity of array subscripts. In general, these techniques are very accurate and efficient for simple subscript expressions, but lose accuracy or require potentially expensive algorithms for complex subscripts. We found that in scientific applications, many access patterns are simple even when the subscript expressions are complex. In this work, we present a new, general array access representation and define operations for it. This allows us to aggregate and simplify the representation enough that precise region operations may be applied to enable compiler optimizations. Our experiments show that these techniques hold promise for speeding up applications.

[1]  Peiyi Tang Exact side effects for interprocedural dependence analysis , 1993, ICS '93.

[2]  William Pugh,et al.  Nonlinear array dependence analysis , 1994 .

[3]  Junjie Gu Zhiyuan Li Gyungho Symbolic Array Data ow Analysisfor Array Privatization and Program Parallelization 1 , 1995 .

[4]  Ken Kennedy,et al.  Analysis of interprocedural side effects in a parallel programming environment , 1988, J. Parallel Distributed Comput..

[5]  Zhiyuan Li,et al.  Efficient interprocedural analysis for program parallelization and restructuring , 1988, PPEALS '88.

[6]  François Irigoin,et al.  Exact versus Approximate Array Region Analyses , 1996, LCPC.

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

[8]  Robert J. Harrison,et al.  Global Arrays: a portable "shared-memory" programming model for distributed memory computers , 1994, Proceedings of Supercomputing '94.

[9]  John R. Gilbert,et al.  Generating Local Address and Communication Sets for Data-Parallel Programs , 1995, J. Parallel Distributed Comput..

[10]  Zhiyuan Li,et al.  Symbolic Array Dataflow Analysis for Array Privatization and Program Parallelization , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[11]  B. Eatrice Creusillet,et al.  Exact vs. Approximate Array Region Analyses , 1996 .

[12]  Yunheung Paek,et al.  Compiling for Distributed Memory Multiprocessors Based on Access Region Analysis , 1997 .

[13]  Gyungho Lee,et al.  Symbolic Array Dataflow Analysis for Array Privatization and Program Parallelization , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[14]  Yunheung Paek,et al.  Parallel Programming with Polaris , 1996, Computer.

[15]  Rudolf Eigenmann,et al.  Symbolic analysis techniques for effective automatic parallelization , 1995 .

[16]  George B. Dantzig,et al.  Fourier-Motzkin Elimination and Its Dual , 1973, J. Comb. Theory, Ser. A.

[17]  Ken Kennedy,et al.  A technique for summarizing data access and its use in parallelism enhancing transformations , 1989, PLDI '89.

[18]  William Pugh,et al.  A practical algorithm for exact array dependence analysis , 1992, CACM.

[19]  Yunheung Paek,et al.  Experimental study of compiler techniques for NUMA machines , 1998, Proceedings of the First Merged International Parallel Processing Symposium and Symposium on Parallel and Distributed Processing.

[20]  Ronald L. Graham,et al.  Concrete Mathematics, a Foundation for Computer Science , 1991, The Mathematical Gazette.

[21]  Ken Kennedy,et al.  Evaluating Compiler Optimizations for Fortran D , 1994, J. Parallel Distributed Comput..

[22]  John R. Grout,et al.  Inline Expansion For The Polaris Research Compiler , 1995 .

[23]  Zhiyu Shen,et al.  An Empirical Study of Fortran Programs for Parallelizing Compilers , 1990, IEEE Trans. Parallel Distributed Syst..

[24]  Monica S. Lam,et al.  Array-data flow analysis and its use in array privatization , 1993, POPL '93.

[25]  T. von Eicken,et al.  Parallel programming in Split-C , 1993, Supercomputing '93.

[26]  Zhiyuan Li,et al.  An Efficient Data Dependence Analysis for Parallelizing Compilers , 1990, IEEE Trans. Parallel Distributed Syst..

[27]  Ronald L. Graham,et al.  Concrete mathematics - a foundation for computer science , 1991 .

[28]  Peng Tu,et al.  Automatic array privatization and demand-driven symbolic analysis , 1996 .

[29]  Paul Havlak,et al.  Interprocedural symbolic analysis , 1995 .