| 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 |