Title :
New results on array contraction [memory optimization]
Author :
Darte, Alain ; Huard, Guillaume
Author_Institution :
Lab. de l´´Informatique du Parallelisme, Ecole Normale Superieure de Lyon, France
Abstract :
Array contraction is an optimization that transforms array variables into scalar variables within a loop. While the opposite transformation, scalar expansion, is used for enabling parallelism (with a penalty in memory size), array contraction is used to save memory by removing temporary arrays and to increase locality. Several heuristics have already been proposed to perform array contraction through loop fusion and/or loop shifting, but thus far, the complexity of the problem was unknown, and no exact approach was available. In this paper, we prove two NP-complete results that characterize precisely the problem and we give a practical integer linear programming formulation to solve the problem exactly.
Keywords :
computational complexity; integer programming; linear programming; memory architecture; optimising compilers; parallel languages; program control structures; transforms; NP-complete problem characterization results; array contraction methods; array variables loop transformation; compilers; integer linear programming formulation; locality increase; loop fusion heuristics; loop shifting; memory optimization; memory size requirements; parallelism; problem complexity; scalar expansion; scalar variables; temporary array removal; Circuits; Design optimization; Energy consumption; Hardware; Integer linear programming; Optimizing compilers; Prefetching; Registers;
Conference_Titel :
Application-Specific Systems, Architectures and Processors, 2002. Proceedings. The IEEE International Conference on
Print_ISBN :
0-7695-1712-9
DOI :
10.1109/ASAP.2002.1030735