Abstract
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 [11]. 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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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.
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.
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.
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.
R. Cytron, J. Ferrante, B.K. Rosen, M.N. Wegman, and F.K. Zadeck. Efficiently computing static single assignment form and the control dependence graph. ACM Trans. on Programming Languages and Systems, 13(4): 451–490, October 1991.
M.P. Gerlek, E. Stoltz, and M. Wolfe. Beyond induction variables: Detecting and classifying sequences using a demand-driven ssa form. ACM Trans. on Programming Languages and Systems, 17(1):85–122, January 1995.
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.
M. Haghighat and C. Polychronopoulos. Symbolic analysis for parallelizing compilers. ACM Trans. on Programming Languages and Systems, 18(4):477–518, July 1996.
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.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Wu, P., Cohen, A., Padua, D. (2003). Induction Variable Analysis without Idiom Recognition: Beyond Monotonicity. In: Dietz, H.G. (eds) Languages and Compilers for Parallel Computing. LCPC 2001. Lecture Notes in Computer Science, vol 2624. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-35767-X_28
Download citation
DOI: https://doi.org/10.1007/3-540-35767-X_28
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-04029-3
Online ISBN: 978-3-540-35767-4
eBook Packages: Springer Book Archive