Demand-Driven Interprocedural Array Property Analysis
Many optimization techniques rely on the analysis of array subscripts. Current compilers often give up optimizations when arrays are subscripted by index arrays and treat the index arrays as unknown functions at compile-time. However, recent empirical studies of real programs have shown that index arrays often possess some properties that can be used to derive more precise information about the enclosing loops. In this paper, we present an index array analysis method, called array property analysis, which computes array properties by back-propagating queries along the control flow of the program. This method integrates the array data-flow analysis with interprocedural analysis and the demand-driven approach.
KeywordsArray Element Loop Index Loop Body Index Array Exit Node
Unable to display preview. Download preview PDF.
- 1.Harold Abelson, Gerald Jay Sussman, and Julie Sussman. Structure and Interpretation of Computer Programs. The MIT Press, San Francisco, California, 1985.Google Scholar
- 2.Z. Ammarguellat and W. L. Harrison, III. Automatic recognition of induction variables and recurrence relations by abstract interpretation. In Proceedings of’ 90 PLDI, pages 283–295, June 1990.Google Scholar
- 3.V. Balasundaram and K. Kennedy. A technique for summarizing data access and its use in parallelism-enhancing transformations. In Proceedings of the Conference on Programming Language Design and Implementation, Portland, OR, June 1989.Google Scholar
- 4.W. Blume and R. Eigenmann. An overview of symbolic analysis techniques needed for the effective parallelization of the perfect benchmarks. In Proceedings of the 23rd International Conference on Parallel Processing. Volume 2: Software, pages 233–238, FL, USA, August 1994.Google Scholar
- 5.William Joseph Blume. Symbolic analysis techniques for effective automatic parallelization. PhD thesis, University of Illinois at Urbana-Champaign, June 1995.Google Scholar
- 6.David Callahan and Ken Kennedy. Compiling programs for distributed-memory multiprocessors. The Journal of Supercomputing, 2(2):151–169, October 1988.Google Scholar
- 7.Béatrice Creusillet and Francois Irigoin. Interprocedural array region analysis. In Eighth International Workshop on Languages and Compilers for Parallel Computing, pages 4-1 to 4-15. Ohio State Uni., August 1995.Google Scholar
- 8.Evelyn Duesterwald, Rajiv Gupta, and Mary Lou Soffa. A practical framework for demand-driven interprocedural data flow analysis. ACM Transactions on Programming Languages and Systems, 19(6):992–1030, November 1997.Google Scholar
- 9.P. Feautrier. Dataflow analysis of scalar and array references. International Journal of Parallel Programming, 20(1):23–52, February 1991.Google Scholar
- 10.T. Gross and P. Steenkiste. Structured dataflow analysis for arrays and its use in an optimizing compiler. Software Practice and Experience, 20(2):133–155, February 1990.Google Scholar
- 11.Junjie Gu, Zhiyuan Li, and Gyungho Lee. Symbolic array dataflow analysis for array privatization and program parallelization. In Proceedings of the 1995 Supercomputing Conference, December 3–8, 1995, San Diego, CA, USA, 1995.Google Scholar