Abstract
Many program optimizations require exact knowledge of the sets of array elements that are referenced in or that flow between statements or procedures. Some examples are array privatization, generation of communications in distributed memory machines, or compile-time optimization of cache behavior in hierarchical memory machines.
Exact array region analysis is introduced in this article. These regions exactly represent the effects of statements and procedures upon array variables. To represent the flow of these data, we also introduce two new types of array region analyses: IN and OUT regions.
The intraprocedural propagation is presented, as well as a general linear framework for interprocedural analyses, that handles array reshapes.
Preview
Unable to display preview. Download preview PDF.
References
American National Standard Programming Language FORTRAN ANSI X3.9-1978, ISO 1539-1980, 1983.
Corinne Ancourt and François Irigoin. Scanning polyhedra with DO loops. In Symposium on Principles and Practice of Parallel Programming, April 1991.
Béatrice Apvrille-Creusillet. Régions exactes et privatisation de tableaux (exact array region analysis and array privatization). Master's thesis, Université Paris VI, France, September 1994. Available via http://www.cri.ensmp.fr/∼creusil.
M. Berry et al. The PERFECT Club benchmarks: Effective performance evaluation of supercomputers. Technical Report CSRD-827, CSRD, University of Illinois, May 1989.
Michael Burke and Ron Cytron. Interprocedural dependence analysis and parallelization. ACM SIGPLAN Notices, 21(7):162–175, July 1986.
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, February 1995. Available via http://www.cri.ensmp.fr/∼coelho.
Jean-François Collard. Automatic parallelization of while-loops using speculative execution. International Journal of Parallel Programming, 23(2):191–219, 1995.
Paul Feautrier. Dataflow analysis of array and scalar references. International Journal of Parallel Programming, 20(1):23–53, September 1991.
Mary Hall, Brian Murphy, Saman Amarasinghe, Shih-Wei Liao, and Monica Lam. Overview of an interprocedural automatic parallelization system. In Fifth International Workshop on Compilers for Parallel Computers, pages 570–579, June 1995.
François Irigoin. Interprocedural analyses for programming environments. In Workshop on Environments and Tools for Parallel Scientific Computing, September 1992.
François Irigoin, Pierre Jouvelot, and Rémi Triolet. Semantical interprocedural parallelization: An overview of the PIPS project. In International Conference on Supercomputing, June 1991.
Chung-Chi Jim Li, Elliot M. Stewart, and W. Kent Fuchs. Compiler-assisted full checkpointing. Software: Practice and Experience, 24(10):871–886, October 1994.
Vadim Maslov. Lazy array data-flow analysis. In Symposium on Principles of Programming Language, pages 311–325, January 1994.
Vadim Maslov and William Pugh. Simplifying polynomial constraints over integers to make dependence analysis more precise. Technical Report CS-TR-3109.1, University of Maryland, College Park, February 1994.
William Pugh. A practical algorithm for exact array dependence analysis. Communications of the ACM, 35(8):102–114, August 1992.
William Pugh and David Wonnacott. Eliminating false data dependences using the omega test. In International Conference on Programming Language Design and Implementation, pages 140–151, June 1992.
Rémi Triolet. Interprocedural analysis for program restructuring with Parafrase. Technical report 538, CSRD, University of Illinois, December 1985.
Rémi Triolet, Paul Feautrier, and François Irigoin. Direct parallelization of call statements. In Symposium on Compiler Construction, 1986.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Creusillet, B., Irigoin, F. (1996). Interprocedural array region analyses. In: Huang, CH., Sadayappan, P., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1995. Lecture Notes in Computer Science, vol 1033. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014191
Download citation
DOI: https://doi.org/10.1007/BFb0014191
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60765-6
Online ISBN: 978-3-540-49446-1
eBook Packages: Springer Book Archive