Induction Variable Analysis without Idiom Recognition: Beyond Monotonicity
- 305 Downloads
Traditional induction variable (IV) analyses focus on computing the closed form expressions of variables. This paper presents a new IV analysis based on a property called distance interval. This property captures the value changes of a variable along a given control-flow path of a program. Based on distance intervals, an efficient algorithm detects dependences for array accesses that involve induction variables. This paper describes how to compute distance intervals and how to compute closed form expressions and test dependences based on distance intervals.
This work is an extension of the previous induction variable analyses based on monotonic evolution . With the same computational complexity, the new algorithm improves the monotonic evolution-based analysis in two aspects: more accurate dependence testing and the ability to compute closed form expressions.
The experimental results demonstrate that when dealing with induction variables, dependence tests based on distance intervals are both efficient and effective compared to closed-form based dependence tests.
KeywordsClosed Form Expression Outer Loop Loop Nest Distance Interval Parallel Loop
Unable to display preview. Download preview PDF.
- Z. Ammarguellat and W.L. Harrison. Automatic recognition of induction & recurrence relations by abstract interpretation. In ACM Symp. on Programming Language Design and Implementation (PLDI’90), pages 283–295, Yorkton Heights, NY, June 1990.Google Scholar
- W. Blume and R. Eigenmann. The range test: A dependence test for symbolic, non-linear expressions. In Supercomputing’94, pages 528–537, Washington D.C., November 1994. IEEE Computer Society Press.Google Scholar
- W. Blume, R. Eigenmann, K. Faigin, J. Grout, J. Hoeflinger, D. Padua, P. Petersen, W. Pottenger, L. Rauchwerger, P. Tu, and S. Weatherford. Parallel programming with Polaris. IEEE Computer, 29(12): 78–82, December 1996.Google Scholar
- A. Cohen, P. Wu, and D. Padua. Pointer analysis for monotonic container traversals. Technical Report CSRD 1586, University of Illinois at Urbana-Champaign, January 2001.Google Scholar
- R. Gupta and M. Spezialetti. Loop monotonic computations: An approach for the efficient run-time detection of races. In ACM Symp. on Testing Analysis and Verification, pages 98–111, 1991.Google Scholar
- Y. Lin and D. Padua. Compiler analysis of irregular memory accesses. In ACM Symp. on Programming Language Design and Implementation (PLDI’00), Vancouver, British Columbia, Canada, June 2000.Google Scholar
- B. Pottenger and R. Eigenmann. Parallelization in the presence of generalized induction and reduction variables. In ACM Int. Conf. on Supercomputing (ICS’95), June 1995.Google Scholar
- P. Wu, A. Cohen, D. Padua, and J. Hoeflinger. Monotonic evolution: An alternative to induction variable substitution for dependence analysis. In ACM Int. Conf. on Supercomputing, Sorrento, Italy, June 2001.Google Scholar
- Peng Wu. Analyses of pointers, induction variables, and container objects for dependence testing. Technical Report UIUCDCS-R-2001-2209, University of Illinois at Urbana-Champaign, May 2001. Ph.D Thesis.Google Scholar