Induction Variable Analysis without Idiom Recognition: Beyond Monotonicity

  • Peng Wu
  • Albert Cohen
  • David Padua
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2624)


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.


Closed Form Expression Outer Loop Loop Nest Distance Interval Parallel Loop 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    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
  2. [2]
    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
  3. [3]
    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
  4. [4]
    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
  5. [5]
    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.CrossRefGoogle Scholar
  6. [6]
    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.CrossRefGoogle Scholar
  7. [7]
    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
  8. [8]
    M. Haghighat and C. Polychronopoulos. Symbolic analysis for parallelizing compilers. ACM Trans. on Programming Languages and Systems, 18(4):477–518, July 1996.CrossRefGoogle Scholar
  9. [9]
    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
  10. [10]
    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
  11. [11]
    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
  12. [12]
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Peng Wu
    • 1
  • Albert Cohen
    • 2
  • David Padua
    • 3
  1. 1.IBM T.J. Watson Research CenterYorktown Heights
  2. 2.A3 Project, INRIA RocquencourtLe ChesnayFrance
  3. 3.Dept. of Computer ScienceU. of IllinoisUrbana

Personalised recommendations