Software Power Optimization via Post-Link-Time Binary Rewriting
Saumya Debray, Robert Muth, Scott A. Watterson · 2001
It is well known that compiler optimizations can significantly reduce the energy usage of a program. However, the traditional model of compilation imposes inherent limits on the extent of code optimization possible at compile time. In particular, analyses and optimizations are typically limited to individual procedures, and hence cannot cross procedural and module boundaries as well as the boundaries between application and library code. These limitations can be overcome by carrying out additional code optimization on the object file obtained after linking has been carried out. These optimizations are complementary to those carried out by the compiler. Our experiments indicate that significant improvements in energy usage can be obtained via post-link-time code optimization, even for programs that have been subjected to extensive compile-time optimization. 1 Motivation The amount of energy consumed during program execution is becoming an increasingly important concern for a wide spec...