Techniques for Increasing and Detecting Memory Alignment
Author(s)
Larsen, Samuel; Witchel, Emmett; Amarasinghe, Saman
DownloadMIT-LCS-TM-621.pdf (1.604Mb)
Metadata
Show full item recordAbstract
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%.
Date issued
2001-11Series/Report no.
MIT-LCS-TM-621