## Induction variable analysis without idiom recognition: Beyond monotonicity (2001)

### Cached

### Download Links

- [polaris.cs.uiuc.edu]
- [www-rocq.inria.fr]
- DBLP

### Other Repositories/Bibliography

Venue: | In Proceedings of the 14th International Workshop on Languages and Compilers for Parallel Computing |

Citations: | 14 - 1 self |

### BibTeX

@INPROCEEDINGS{Wu01inductionvariable,

author = {Peng Wu and Albert Cohen and David Padua},

title = {Induction variable analysis without idiom recognition: Beyond monotonicity},

booktitle = {In Proceedings of the 14th International Workshop on Languages and Compilers for Parallel Computing},

year = {2001},

pages = {2624}

}

### Years of Citing Articles

### OpenURL

### Abstract

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. 1 Introduction Dependence analysis is useful to many parallelization and optimization algorithms. To extract dependence information, array subscripts must be compared across statements and loop iterations. However, array subscripts often include variables whose value at each loop iteration is not easily available. An important class of such variables are induction variables. In classical dependence analyses, occurrences of induction variable are often replaced by their closed form expressions. Since most dependence tests handle affine expressions only, this approach only applies to induction variables with affine closed form expressions. To handle more general induction variables, in our previous work, we proposed a dependence test based on a light-weight IV

### Citations

837 | E ciently computing static single assignment form and the control dependence graph
- Cytron, Ferrante, et al.
- 1991
(Show Context)
Citation Context ...Ammarguellat and Harrison [1] to compute symbolic expressions. Two general classificationstechniques have been designed. The first one [6] by Gerlek, Stoltz and Wolfe is based on a SSA representation =-=[5]-=- optimized for efficient demand-driven traversals. The second one [8] is designed by Haghighat and Polychronopoulos for the Parafrase 2 compiler. It combines symbolic execution and recurrence interpol... |

157 |
Parallel programming with Polaris
- William, Doallo, et al.
- 1996
(Show Context)
Citation Context ...of dependence test Consider the loop in Fig. 5 that swaps every pair of consecutive elements of array a. Since k is incremented by 2 per iteration, we have, 3 ⊣ k 1 ⊣ k 5 + [1, 1] = [2, 2] + [1, 1] = =-=[3, 3]-=- 5 ⊣ k 1 ⊣ k 3 + [−1, −1] = [2, 2] + [−1, −1] = [1, 1]. This proves there is no loop-carried dependence between 3 and 5. 4.2 Practical Computation The dependence test computes two evolutions for any p... |

105 | Symbolic analysis for parallelizing compilers
- Haghighat
- 1996
(Show Context)
Citation Context ...neral classificationstechniques have been designed. The first one [6] by Gerlek, Stoltz and Wolfe is based on a SSA representation [5] optimized for efficient demand-driven traversals. The second one =-=[8]-=- is designed by Haghighat and Polychronopoulos for the Parafrase 2 compiler. It combines symbolic execution and recurrence interpolation. Both techniques handle a broad scope of closed form expression... |

102 | Beyond induction variables: Detecting and classifying sequences using a demand-driven SSA form
- Gerlek, Stoltz, et al.
- 1995
(Show Context)
Citation Context ... integer induction variables. Abstract interpretation is used by Ammarguellat and Harrison [1] to compute symbolic expressions. Two general classificationstechniques have been designed. The first one =-=[6]-=- by Gerlek, Stoltz and Wolfe is based on a SSA representation [5] optimized for efficient demand-driven traversals. The second one [8] is designed by Haghighat and Polychronopoulos for the Parafrase 2... |

80 | The range test: A dependence test for symbolic, non-linear expressions
- Blume, Eigenmann
- 1994
(Show Context)
Citation Context ...his case, we may use the shorter a for [a, a]. The lattice of distance intervals is formally defined in Table 2. ⊥ describe unreachable evolutions. Consider the example in Figure 2, we have 5 ⊣ k 5 = =-=[2, 18]-=-. ⊔ ⊥ [a, b] ⊥ ⊥ [a, b] [c, d] [c, d] [min(a, c),max(b, d)] Table 2. Distance-extended lattice A distance interval can always be mapped to an evolution state according to the signs of the interval’s b... |

26 | Monotonic evolution: an alternative to induction variable substitution for dependence analysis
- Wu, Cohen, et al.
- 2001
(Show Context)
Citation Context ...tervals 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 expr... |

19 | Parallelization in the presence of generalized induction and reduction variables
- Pottenger, Eigenmann
- 1995
(Show Context)
Citation Context ...et us illustrate these definitions on the example in Fig. 4 where nodes are named by statement labels. – Stridei(ℓ3)= [1, 1] since it traverses exactly one iteration of the inner loop; – Stridei(ℓ1)= =-=[10, 10]-=- since it traverses statement 2 and the entire inner loop exactly once (knowing ℓ3 has 8 iterations); – Downi(3, 5)= [1, 1] since it traverses the single path from statement 3 to the first statement 5... |

13 |
Automatic Recognition of Induction & Recurrence Relations by Abstract Interpretation
- Ammarguellat, Harrison
- 1990
(Show Context)
Citation Context ...xit edge of ℓ. It is a special case of Downi,N(h, p) and Upi,N(p, h) when p = h. Let us illustrate these definitions on the example in Fig. 4 where nodes are named by statement labels. – Stridei(ℓ3)= =-=[1, 1]-=- since it traverses exactly one iteration of the inner loop; – Stridei(ℓ1)= [10, 10] since it traverses statement 2 and the entire inner loop exactly once (knowing ℓ3 has 8 iterations); – Downi(3, 5)=... |

13 |
D.: Compiler analysis of irregular memory accesses
- Lin, Padua
- 2000
(Show Context)
Citation Context ...ction framework with arithmetic and geometric sums as well as monotonic sequences, but for non-nested loops only. Their technique is applied to efficient run-time array bounds checking. Lin and Padua =-=[9]-=- studied monotonicity for values of index arrays in the context of parallelizing irregular codes. This property is used later to detect dependences between accesses to sparse matrices through index ar... |

6 |
Loop monotonic computations: An approach for the efficient run-time detection of races
- Gupta, Spezialetti
- 1991
(Show Context)
Citation Context ...tement 2 and the entire inner loop exactly once (knowing ℓ3 has 8 iterations); – Downi(3, 5)= [1, 1] since it traverses the single path from statement 3 to the first statement 5 reached; – Upi(5, 1)= =-=[0, 7]-=- since statement 4 is traversed at most 7 times. 3.4 Computing Evolutions The non-iterative algorithm described in [11] can be extended to compute distance intervals of evolutions. Due to space constr... |

5 | Pointer analysis for monotonic container traversals
- Cohen, Wu, et al.
- 2001
(Show Context)
Citation Context ...rent variables. We would also like to apply monotonic evolution on other forms of induction operations, such as pointer chasing in recursive data structures and container traversals through iterators =-=[4]-=-, either for pointer analysis or for parallization. Monotonic evolution is well-suited for dynamic structures since traversals of such structures are likely to be monotonic, and closed form abstractio... |

3 | Analyses of pointers, induction variables, and container objects for dependence testing - Wu - 2001 |