TY - GEN
T1 - Loop optimization for aggregate array computations
AU - Liu, Yanhong A.
AU - Stoller, Scott D.
PY - 1998
Y1 - 1998
N2 - 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 both 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 information 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. Incrementalizing aggregate array computations produces drastic program speedup compared to previous optimizations. Previous methods for loop optimizations of arrays do not perform incrementalization, and previous techniques for loop incrementalization do not handle arrays.
AB - 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 both 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 information 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. Incrementalizing aggregate array computations produces drastic program speedup compared to previous optimizations. Previous methods for loop optimizations of arrays do not perform incrementalization, and previous techniques for loop incrementalization do not handle arrays.
UR - https://www.scopus.com/pages/publications/0031640971
U2 - 10.1109/ICCL.1998.674176
DO - 10.1109/ICCL.1998.674176
M3 - Conference contribution
AN - SCOPUS:0031640971
SN - 0818684542
T3 - Proceedings of the IEEE International Conference on Computer Languages
SP - 262
EP - 271
BT - Proceedings of the IEEE International Conference on Computer Languages
A2 - Anon, null
T2 - Proceedings of the 1998 International Conference on Computer Languages
Y2 - 14 May 1998 through 16 May 1998
ER -