A compiler technique for improving whole-program locality

Research output: Contribution to journalConference article

9 Scopus citations

Abstract

Exploiting spatial and temporal locality is essential for obtaining high performance on modern computers. Writing programs that exhibit high locality of reference is difficult and error-prone. Compiler researchers have developed loop transformations that allow the conversion of programs to exploit locality. Recently, transformations that change the memory layouts of multi-dimensional arrays - called data transformations - have been proposed. Unfortunately, both data and loop transformations have some important draw-backs. In this work, we present an integrated framework that uses loop and data transformations in concert to exploit the benefits of both approaches while minimizing the impact of their disadvantages. Our approach works interprocedurally on acyclic call graphs, uses profile data to eliminate layout conflicts, and is unique in its capability of resolving conflicting layout requirements of different references to the same array in the same nest and in different nests for regular array-based applications. The optimization technique presented in this paper has been implemented in a source-to-source translator. We evaluate its performance using standard benchmark suites and several math libraries (complete programs) with large input sizes. Experimental results show that our approach reduces the overall execution times of original codes by 17.5% on the average. This reduction comes from three important characteristics of the technique, namely, resolving layout conflicts between references to the same array in a loop nest, determining a suitable order to propagate layout modifications across loop nests, and propagating layouts between different procedures in the program - all in a unified framework.

Original languageEnglish (US)
Pages (from-to)179-192
Number of pages14
JournalConference Record of the Annual ACM Symposium on Principles of Programming Languages
Publication statusPublished - May 14 2001
Event28th ACM SIGPLAN-SIGACT Symposiu on Principles of Programming Languages - London, United Kingdom
Duration: Jan 17 2001Jan 19 2001

    Fingerprint

All Science Journal Classification (ASJC) codes

  • Software

Cite this