Skip to main navigation Skip to search Skip to main content

Loop optimization for aggregate array computations

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

15 Scopus citations

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 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.

Original languageEnglish
Title of host publicationProceedings of the IEEE International Conference on Computer Languages
Editors Anon
Pages262-271
Number of pages10
DOIs
StatePublished - 1998
EventProceedings of the 1998 International Conference on Computer Languages - Chicago, IL, USA
Duration: May 14 1998May 16 1998

Publication series

NameProceedings of the IEEE International Conference on Computer Languages
ISSN (Print)1074-8970

Conference

ConferenceProceedings of the 1998 International Conference on Computer Languages
CityChicago, IL, USA
Period05/14/9805/16/98

Fingerprint

Dive into the research topics of 'Loop optimization for aggregate array computations'. Together they form a unique fingerprint.

Cite this