Techniques for Increasing and Detecting Memory Alignment
Name
MIT-LCS-TM-621.pdf
Size
1.6 MB
Format
Adobe PDF
Checksum (MD5)
b27c04079378f14293ea3705c8e06b76
Author(s) • •
Larsen, Samuel
Witchel, Emmett
Amarasinghe, Saman
Date Issued
November 2001
Series/Report no.
MIT-LCS-TM-621
Abstract
Memory alignment is an important property in memory system performance. Extraction of alignment information at compile-time enables the possibility for new classes of program optimization. In this paper, we present methods for increasing and detecting the alignment of memory references in a program. Our transformations and analyses do not require interprocedural analysis and introduce almost no overhead. As a result, they can be incorporated into real compilation systems. On average, our techniques are able to achieve a five-fold increase in the number of dynamically aligned memory references. We are then able to detect 94% of these operations. This success is invaluable in providing performance gains in a range of different areas. When alignment information is incorporated into a vectorizing compiler, we can increase the performance of a G4 AltiVec processor by more than a factor of two. Using the same methods, we are able to reduce energy consumption in a data cache by as much as 35%.
Persistent DSpace Link