International Journal of Parallel Programming , Vol . 26, No. 6, 1998 Reuse-Driven Tiling for Improving Data Locality Jingling Xue 1 and Chua-Huang Huang 2 This paper applies unimodular transformations and tiling to improve data locality of a loop nest. Due to data dependences and reuse information, not all dimensions of the iteration space will and can be tiled. By using cones to repre- sent data dependences and vector spaces to quantify data reuse in the program, a reuse-driven transformational approach is presented, which aims at maxim- izing the amount of data reuse carried in the tiled dimensions of the iteration space while keeping the number of tiled dimensions to a minimum (to reduce loop control overhead). In the special case of one single fully permutable loop nest, an algorithm is presented that tiles the program optimally so that all data reuse is carried in the tiled dimensions. In the general case of multiple fully per- mutable loop nests, data dependences can prevent all data reuse to be carried in the tiled dimensions. An algorithm is presented that aims at localizing data reuse in the tiled dimensions so that the reuse space localized has the largest dimensionality possible. KEY WORDS: Tiling; loop transformation; data locality; nested loops. 1. INTRODUCTION This paper applies unimodular transformations and tiling to tile a perfect loop nest to improve data locality of the loop nest. Due to data dependen- ces and reuse information, not all dimensions of the iteration space will and can be tiled. In general, the tiled program consists of a sequence of loops that iterate over the untiled dimensions followed by a sequence of loops 671 0885-7458/ 98/ 1200-0671$15.00/ 0 Ñ 1998 Plenum Publishing Corporation 1 School of Mathematical and Computer Sciences, University of New England, Armidale, NSW 2351, Australia. 2 Department of Computer Science and Information Engineering, National Dong Hwa University, Hualien, Taiwan, ROC.