TY - GEN
T1 - Facilitating compiler optimizations through the dynamic mapping of alternate register structures
AU - Zimmer, Chris
AU - Hines, Stephen Roderick
AU - Kulkarni, Prasad
AU - Tyson, Gary
AU - Whalley, David
PY - 2007
Y1 - 2007
N2 - Aggressive compiler optimizations such as software pipelining and loop invariant code motion can significantly improve application performance, but these transformations often require the use of several additional registers to hold data values across one or more loop iterations. Compilers that target embedded systems may often have difficulty exploiting these optimizations since many embedded systems typically do not have as many general purpose registers available. Alternate register structures like register queues can be used to facilitate the application of these optimizations due to common reference patterns. In this paper, we propose a microarchitectural technique that permits these alternate register structures to be efficiently mapped into a given processor architecture and automatically exploited by an optimizing compiler. We show that this minimally invasive technique can be used to facilitate the application of software pipelining and loop invariant code motion for a variety of embedded benchmarks. This leads to performance improvements for the embedded processor, as well as new opportunities for further aggressive optimization of embedded systems software due to a significant decrease in the register pressure of tight loops.
AB - Aggressive compiler optimizations such as software pipelining and loop invariant code motion can significantly improve application performance, but these transformations often require the use of several additional registers to hold data values across one or more loop iterations. Compilers that target embedded systems may often have difficulty exploiting these optimizations since many embedded systems typically do not have as many general purpose registers available. Alternate register structures like register queues can be used to facilitate the application of these optimizations due to common reference patterns. In this paper, we propose a microarchitectural technique that permits these alternate register structures to be efficiently mapped into a given processor architecture and automatically exploited by an optimizing compiler. We show that this minimally invasive technique can be used to facilitate the application of software pipelining and loop invariant code motion for a variety of embedded benchmarks. This leads to performance improvements for the embedded processor, as well as new opportunities for further aggressive optimization of embedded systems software due to a significant decrease in the register pressure of tight loops.
KW - Compiler optimizations
KW - Register queues
KW - Software pipelining
UR - http://www.scopus.com/inward/record.url?scp=38849154085&partnerID=8YFLogxK
U2 - 10.1145/1289881.1289912
DO - 10.1145/1289881.1289912
M3 - Conference contribution
AN - SCOPUS:38849154085
SN - 9781595938268
T3 - CASES'07: Proceedings of the 2007 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems
SP - 165
EP - 169
BT - CASES'07
T2 - CASES'07: 2007 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems
Y2 - 30 September 2007 through 3 October 2007
ER -