Abstract
Advanced program optimizations, such as array privatization, require precise array data flow analyses, usually relying on conservative over- (or may) and under- (or must) approximations of array element sets [25, 33, 21]. In a recent study [13], we proposed to compute exact sets whenever possible. But the advantages of this approach were still an open issue which is discussed in this paper.
It is first recalled that must array region analyses cannot be defined on lattices. It implies that there exists no better solution for such data flow problems, and that ad-hoc solutions must be defined.
For that purpose, it is suggested to perform under- and over-approximate analyses at the same time, and to enhance the results of must analyses with those of may analyses, when the latter can be proved exact according to an exactness criterion. This is equivalent to our previous approach, and is more effective than using only existing techniques such as widening and narrowing operators which may fail to expose exact solutions even though their computability is decidable. This method is very general and could be applied to other types of analyses.
Preview
Unable to display preview. Download preview PDF.
References
Corinne Ancourt and François Irigoin. Scanning polyhedra with DO loops. In Symposium on Principles and Practice of Parallel Programming, pages 39–50, April 1991.
V. Balasundaram and K. Kennedy. A technique for summarizing data access and its use in parallelism enhancing transformations. In International Conference on Programming Language Design and Implementation, pages 41–53, June 1989.
Garrett Birkhoff. Lattice Theory, volume XXV of AMS Colloqium Publications. American Mathematical Society, Providence, Rhode Island, third edition, 1967.
W. Blume and R. Eigenmann. Performance analysis of parallelizing compilers on the Perfect Benchmarks programs. IEEE Transactions on Parallel and Distributed Systems, 3(6):643–656, November 1992.
François Bourdoncle. Sémantique des Langages Impératifs d'Ordre Supérieur et Interprétation Abstraite. PhD thesis, École Polytechnique, November 1992.
D. Callahan and K. Kennedy. Analysis of interprocedural side effects in a parallel programming environment. Journal of Parallel and Distributed Computing, 5:517–550, 1988.
Fabien Coelho. Compilation of I/O communications for HPF. In Frontiers'95, pages 102–109, February 1995. Available via http://www.cri.ensmp.fr/∼coelho.
Fabien Coelho and Corinne Ancourt. Optimal compilation of HPF remappings. Technical Report A-277-CRI, CRI, École des Mines de Paris, October 1995. To appear in JPDC in 1996.
Patrick Cousot. Méthodes Itératives de Construction et d'Approximation de Points Fixes d'Opérateurs Monotones sur un Treillis, Analyse Sémantique des Programmes. PhD thesis, Institut National Polytechnique de Grenoble, March 1978.
Patrick Cousot and Radhia Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Symposium on Principles of Programming Languages, pages 238–252, 1977.
Patrick Cousot and Radhia Cousot. Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages). In International Conference on Computer Languages, IEEE Computer Socitey Press, pages 95–112, May 1994.
Béatrice Creusillet. Array regions for interprocedural parallelization and array privatization. Report A-279, CRI, École des Mines de Paris, November 1995. Available at http://www.cri.ensmp.fr/∼creusil.
Béatrice Creusillet and François Irigoin. Interprocedural array region analyses. In Languages and Compilers for Parallel Computing, number 1033 in Lecture Notes in Computer Science, pages 46–60. Springer-Verlag, August 1995.
Béatrice Creusillet and François Irigoin. Interprocedural array region analyses. To appear in International Journal of Parallel Programming (special issue on LCPG), 24(6), 1996. Extended version of [13].
Paul Feautrier. Array expansion. In International Conference on Supercomputing, pages 429–441, July 1988.
Paul Feautrier. Dataflow analysis of array and scalar references. International Journal of Parallel Programming, 20(1):23–53, September 1991.
Kyle Gallivan, William Jalby, and Dennis Gannon. On the problem of optimizing data transfers for complex memory systems. In International Conference on Supercomputing, pages 238–253, July 1988.
S. Graham and M. Wegman. Fast and usually linear algorithm for global flow analysis. Journal of the ACM, 23(1):172–202, January 1976.
Jungie Gu, Zhiyuan Li, and Gyungho Lee. Symbolic array dataflow analysis for array privatization and program parallelization. In Supercomputing, December 1995.
C. Gunter and D. Scott. Denotational semantics. In Jan van Leeuwen, editor, Theoretical Computer Science, volume B, chapter 12. Elsevier Science Publisher, 1990.
Mary Hall, Saman Amarasinghe, Brian Murphy, Shih-Wei Liao, and Monica Lam. Detecting coarse-grain parallelism using an interprocedural parallelizing compiler. In Supercomputing, December 1995.
Mary Hall, Brian Murphy, Saman Amarasinghe, Shih-Wei Liao, and Monica Lam. Interprocedural analysis for parallelization. In Languages and Compilers for Parallel Computing, Lecture Notes in Computer Science, pages 61–80. Springer-Verlag, August 1995.
Michael Hind, Michael Burke, Paul Carini, and Sam Midkiff. An empirical study of precise interprocedural array analysis. Scientific Programming, 3(3):255–271, May 1994.
François Irigoin, Pierre Jouvelot, and Rémi Triolet. Semantical interprocedural parallelization: An overview of the PIPS project. In International Conference on Supercomputing, pages 144–151, June 1991.
Zhiyuan Li. Array privatization for parallel execution of loops. In International Conference on Supercomputing, pages 313–322, July 1992.
Dror E. Maydan, Saman P. Amarasinghe, and Monica S. Lam. Array data-flow analysis and its use in array privatization. In Symposium on Principles of Programming Languages, January 1993.
Peter Mosses. Denotational semantics. In Jan van Leeuwen, editor, Theoretical Computer Science, volume B, chapter 11. Elsevier Science Publisher, 1990.
William Pugh. A practical algorithm for exact array dependence analysis. Communications of the ACM, 35(8):102–114, August 1992.
Peiyi Tang. Exact side effects for interprocedural dependence analysis. In International Conference on Supercomputing, pages 137–146, July 1993.
Rémi Triolet. Contribution à la parallélisation automatique de programmes Fortran comportant des appels de procédures. PhD thesis, Paris VI University, 1984.
Rémi Triolet, Paul Feautrier, and François Irigoin. Direct parallelization of call statements. In ACM SIGPLAN Symposium on Compiler Construction, pages 176–185, 1986.
Peng Tu. Automatic Array Privatization and Demand-Driven Symbolic Analysis. PhD thesis, University of Illinois at Urbana-Champaign, 1995.
Peng Tu and David Padua. Array privatization for shared and distributed memory machines (extended abstract). In Workshop on Languages and Compilers for Distributed Memory Machines, pages 64–67, 1992.
Peng Tu and David Padua. Automatic array privatization. In Languages and Compilers for Parallel Computing, August 1993.
David Wonnacott. Constraint-Based Array Dependence Analysis. PhD thesis, University of Maryland, College Park, August 1995.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Creusillet, B., Irigoin, F. (1997). Exact versus approximate array region analyses. In: Sehr, D., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1996. Lecture Notes in Computer Science, vol 1239. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017247
Download citation
DOI: https://doi.org/10.1007/BFb0017247
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63091-3
Online ISBN: 978-3-540-69128-0
eBook Packages: Springer Book Archive