A compiler optimization to reduce execution time of loop nest

  • Authors:
  • Oh-Young Kwon;Gi-Ho Park;Tack-Don Han

  • Affiliations:
  • Department of Computer Science, Yonsei University, Seoul, Korea;Department of Computer Science, Yonsei University, Seoul, Korea;Department of Computer Science, Yonsei University, Seoul, Korea

  • Venue:
  • ACM SIGARCH Computer Architecture News
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper, a compiler optimization to reduce the execution time of loop nest is proposed. Loop tiling is used to optimize loop nest. Loop tiling is the well-known optimization for improving locality. However, it has a count result that increases the number of instructions to loop control. These increased instructions disturb the effect of locality optimization. Therefore, the tiling of innermost loop is not perform in order to reduce the instructions for loop control in this paper. This optimization consists of two steps. In the first step, loop permutation is used to maximize the spatial reuse of innermost loop. Because innermost loop tiling is not performed, spatial reuse of innermost loop is exploited to reduce execution time of loop nest. In the second step, the tile size of outer loops is decided using the basic cache parameters. When this optimization is applied to the matrix multiplication, execution time is improved 3 to 4 fold. Also, this optimization technique is easily applied to make a parallelizing and/or optimizing compilers.