Layout transformations for heap objects using static access patterns

  • Authors:
  • Jinseong Jeon;Keoncheol Shin;Hwansoo Han

  • Affiliations:
  • Division of Computer Science, Korea Advanced Institute of Science and Technology, Daejeon, Republic of Korea;Division of Computer Science, Korea Advanced Institute of Science and Technology, Daejeon, Republic of Korea;Division of Computer Science, Korea Advanced Institute of Science and Technology, Daejeon, Republic of Korea

  • Venue:
  • CC'07 Proceedings of the 16th international conference on Compiler construction
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

As the amount of data used by programs increases due to the growth of hardware storage capacity and computing power, efficient memory usage becomes a key factor for performance. Since modern applications heavily use structures allocated in the heap, this paper proposes an efficient structure layout based on static analyses. Unlike most of the previous work, our approach is an entirely static transformation of programs. We extract access patterns from source programs and represent them with regular expressions. Repetitive accesses are usually important pieces of information for locality optimizations. The expressive power of regular expressions is appropriate to represent those repetitive accesses along with various access patterns according to the control flow of programs. By interpreting statically obtained access patterns, we choose suitable structures for pool allocation and reorganize field layouts of the chosen structures. To verify the effect of our static optimization, we implement our analyses and optimizations with the CIL compiler. Our experiments with the Olden benchmarks demonstrate that layout transformations for heap objects based on our static access pattern analysis improve cache locality by 38% and performance by 24%.