Issue No. 09 - September (2004 vol. 53)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TC.2004.62
Zhiyuan Li , IEEE Computer Society
Array contraction is a program transformation which reduces array size while preserving the correct output. In this paper, we present an aggressive array-contraction technique and study its impact on memory system performance. This technique, called controlled SFC, combines loop shifting and controlled loop fusion to maximize opportunities for array contraction within a given loop nesting. A controlled fusion scheme is used to prevent overfusing loops and to avoid excessive pressure on the cache and the registers. Reducing the array size increases data reuse because of the increased average number of memory operations on the same memory addresses. Furthermore, if the data size of a loop nest fits in the cache after array contraction, then repeated references to the same variable in the loop nest will generate cache hits, assuming set conflicts are eliminated successfully.
Compiler, memory, optimization, performance, array contraction, data locality, loop shifting, optimizing compilers.
Yonghong Song, Cheng Wang, Rong Xu, Zhiyuan Li, "Improving Data Locality by Array Contraction", IEEE Transactions on Computers, vol. 53, no. , pp. 1073-1084, September 2004, doi:10.1109/TC.2004.62