Optimizations performed at link time or directly applied to nal program executables have received increased attention in recent years. This paper discuss the discovery and elimination of redundant load operations in the context of a link time optimizer, an optimization that we call Load Redundancy Elimination (LRE). Our experiments show that between 50% and 75% of a program'smemory references can be considered redundant because they are accessing memory locations that have been referenced less than 200{400 instructions away. We then present three pro le-based LRE algorithms targeted at optimizing away this redundancies. Our results show that between 5% and 30% of the redundancy detected can indeed be eliminated, which translates into program speedups in the range of 3% to 8%. We also test our algorithm assuming di erent cache latencies, and show that, if latencies continue to grow, the load redundancy elimination will become more important.
Manel Fernández, Roger Espasa, Saumya K. De