Optimizing aggregate array computations in loops (2005)
Cached
Download Links
- [ftp.cs.sunysb.edu]
- [www.cs.sunysb.edu]
- [ftp.cs.sunysb.edu]
- DBLP
Other Repositories/Bibliography
| Venue: | ACM Transactions on Programming Languages and Systems |
| Citations: | 5 - 1 self |
BibTeX
@ARTICLE{Liu05optimizingaggregate,
author = {Yanhong A. Liu and Scott D. Stoller and Ning Li and Tom Rothamel},
title = {Optimizing aggregate array computations in loops},
journal = {ACM Transactions on Programming Languages and Systems},
year = {2005},
pages = {2005}
}
Years of Citing Articles
OpenURL
Abstract
An aggregate array computation is a loop that computes accumulated quantities over array elements. Such computations are common in programs that use arrays, and the array elements involved in such computations often overlap, especially across iterations of loops, resulting in significant redundancy in the overall computation. This paper presents a method and algorithms that eliminate such overlapping aggregate array redundancies and shows analytical and experimental performance improvements. The method is based on incrementalization, i.e., updating the values of aggregate array computations from iteration to iteration rather than computing them from scratch in each iteration. This involves maintaining additional values not maintained in the original program. We reduce various analysis problems to solving inequality constraints on loop variables and array subscripts, and we apply results from work on array data dependence analysis. For aggregate array computations that have significant redundancy, incrementalization produces drastic speedup compared to previous optimizations; when there is little redundancy, the benefit might be offset by cache effects and other factors. Previous methods for loop optimizations of arrays do not perform incrementalization, and previous techniques for loop incrementalization do not handle arrays. 1







