dc.contributor.author | Larsen, Samuel | |
dc.contributor.author | Witchel, Emmett | |
dc.contributor.author | Amarasinghe, Saman P. | |
dc.date.accessioned | 2003-11-29T21:06:30Z | |
dc.date.available | 2003-11-29T21:06:30Z | |
dc.date.issued | 2003-01 | |
dc.identifier.uri | http://hdl.handle.net/1721.1/3760 | |
dc.description.abstract | A static memory reference exhibits a unique property when its dynamic memory addresses are congruent with respect to some non-trivial modulus. Extraction of this congruence information at compile-time enables new classes of program optimization. In this paper, we present methods for forcing congruence among the dynamic addresses of a memory reference. We also introduce a compiler algorithm for detecting this property. Our transformations do not require interprocedural analysis and introduce almost no overhead. As a result, they can be incorporated into real compilation systems. On average, our transformations are able to achieve a five-fold increase in the number of congruent memory operations. We are then able to detect 95% of these references. This success is invaluable in providing performance gains in a variety of areas. When congruence information is incorporated into a vectorizing compiler, we can increase the performance of a G4 AltiVec processor up to a factor of two. Using the same methods, we are able to reduce energy consumption in a data cache by as much as 35%. | en |
dc.description.sponsorship | Singapore-MIT Alliance (SMA) | en |
dc.format.extent | 11417 bytes | |
dc.format.mimetype | application/pdf | |
dc.language.iso | en_US | |
dc.relation.ispartofseries | Computer Science (CS); | |
dc.subject | memory address congruence | en |
dc.subject | vectorizing compiler | en |
dc.subject | program optimization | en |
dc.title | Increasing and Detecting Memory Address Congruence | en |
dc.type | Article | en |