Automatic Compiler-Inserted Prefetching for Pointer-Based Applications

  • Authors:
  • Chi-Keung Luk;Todd C. Mowry

  • Affiliations:
  • Univ. of Toronto, Toronto, Ont., Canada;Carnegie Mellon Univ., Pittsburgh, PA

  • Venue:
  • IEEE Transactions on Computers - Special issue on cache memory and related problems
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

As the disparity between processor and memory speeds continues to grow, memory latency is becoming an increasingly important performance bottleneck. While software-controlled prefetching is an attractive technique for tolerating this latency, its success has been limited thus far to array-based numeric codes. In this paper, we expand the scope of automatic compiler-inserted prefetching to also include the recursive data structures commonly found in pointer-based applications.We propose three compiler-based prefetching schemes, and automate the most widely applicable scheme (greedy prefetching) in an optimizing research compiler. Our experimental results demonstrate that compiler-inserted prefetching can offer significant performance gains on both uniprocessors and large-scale shared-memory multiprocessors.