Polaris: A New-Generation Parallelizing Compiler for MPPs

ion for Inner Loops When the algorithm nds a loop nested inside a loop body, it will recursively call itself on the inner loop. To hide the control ow of an inner loop, we introduce some abstraction and extend the previous de nition from a basic block to a complete loop. We start by de ning the information for one iteration of the loop. De nition 5 Let L be a loop and V AR be the variables in the program. We de ne the following set as summary set for body(L). 1. DEFb(L) := fv 2 VAR : v has a MRD reaching all exits node of body(L) g 2. USEb(L) := fv 2 V AR : v has an outward exposed use in body(L) g 3. KILLb(L) := DEFb(L) 4. PRIb(L) := fv 2 VAR : every use of v has a reaching MRD in body(L) g 2 The summary set is an abstraction of the e ect of a loop iteration on the data ow values. Using the summary set, we can ignore the structure of the inner loops in the analysis of the outer loop. The trade-o is that we have to make a conservative approximation and may lose information in the process. DEFb(L) is themust de ne variables for one iteration of L; i.e. the must de ne variables upon exiting the iteration: DEFb(L) = \(MRDout(t) : t 2 exits(L))

[1]  Chuan-Qi Zhu,et al.  A Scheme to Enforce Data Dependence on Large Multiprocessor Systems , 1987, IEEE Transactions on Software Engineering.

[2]  Paul Feautrier,et al.  Array expansion , 1988, ICS '88.

[3]  Michael Wolfe,et al.  Beyond induction variables , 1992, PLDI '92.

[4]  Monica S. Lam,et al.  Data Dependence and Data-Flow Analysis of Arrays , 1992, LCPC.

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

[6]  Ron Cytron,et al.  What's In a Name? -or- The Value of Renaming for Parallelism Detection and Storage Allocation , 1987, ICPP.

[7]  David A. Padua,et al.  Advanced compiler optimizations for supercomputers , 1986, CACM.

[8]  Anne Rogers,et al.  Process decomposition through locality of reference , 1989, PLDI '89.

[9]  David A. Padua,et al.  Static and dynamic evaluation of data dependence analysis , 1993, ICS '93.

[10]  Mark N. Wegman,et al.  Constant propagation with conditional branches , 1985, POPL.

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

[12]  David A. Padua,et al.  Array privatization for shared and distributed memory machines (extended abstract) , 1993, SIGP.

[13]  David A. Padua,et al.  Experience in the Automatic Parallelization of Four Perfect-Benchmark Programs , 1991, LCPC.

[14]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[15]  Bowen Alpern,et al.  Detecting equality of variables in programs , 1988, POPL '88.

[16]  M. Wegman,et al.  Global value numbers and redundant computations , 1988, POPL '88.

[17]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

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

[19]  Michael Gerndt,et al.  SUPERB: A tool for semi-automatic MIMD/SIMD parallelization , 1988, Parallel Comput..

[20]  Zhiyuan Li Array privatization for parallel execution of loops , 1992, ICS.