ACM Home Page
Please provide us with feedback. Feedback
Differential register allocation
Full text PdfPdf (214 KB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation table of contents
Chicago, IL, USA
SESSION: Register allocation table of contents
Pages: 168 - 179  
Year of Publication: 2005
ISBN:1-59593-056-6
Also published in ...
Authors
Xiaotong Zhuang  Georgia Institute of Technology, Atlanta, GA
Santosh Pande  Georgia Institute of Technology, Atlanta, GA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 0,   Downloads (12 Months): 48,   Citation Count: 3
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1065010.1065031
What is a DOI?

ABSTRACT

Micro-architecture designers are very cautious about expanding the number of architected registers (also the register field), because increasing the register field adds to the code size, raises I-cache and memory pressure, complicates processor pipeline. Especially for low-end processors, encoding space could be extremely limited due to area and power considerations. On the other hand, the number of architected registers exposed to the compiler could directly affect the effectiveness of compiler analysis and optimization. For high performance computers, register pressure can be higher than the available registers in some regions, e.g. due to optimizations like aggressive function inlining, software pipelining etc. The compiler cannot effectively perform compilation and optimization if only a small number of registers are exposed through the ISA. Therefore, it is crucial that more architected registers are available at the compiler's disposal without expanding the code size significantly.In this paper, we look at a new register encoding scheme called differential encoding that allows more registers to be addressed in the operand field of instructions than the direct encoding currently being used. We show it can be implemented with very low overhead. Based upon differential encoding, we apply it in several ways such that the extra architected registers can benefit the performance. Three schemes are devised to integrate differential encoding with register allocation. We demonstrate that differential register allocation is helpful in improving the performance of both high-end and low-end processors. Moreover, We can combine it with software pipelining to provide more registers and reduce spills.Our results show that differential encoding significantly reduces the number of spills and speeds up program execution. For a low-end configuration, we achieve over 12% speedup while keeping code size almost unaffected. For optimization on loops, it significantly speeds up loops with high register pressure (over 70% speedup).


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
D. Burger and T.M. Austin. The SimpleScalar Tool Set. Version 2.0, Tech. Report No. 1342, Computer Sciences Department, University of Wisconsin-Madison, June 1997.
 
3
Gregory J. Chaitin, Marc A. Auslander, Ashok K. Chandra, John Cocke, Martin E. Hopkins, and Peter W. Markstein. Register allocation via coloring. Computer Language, 6(1):47--57, 1981.
4
5
 
6
Intel Inc. SA-110 Microprocessor Technical Reference Manual, September 1998.
7
8
 
9
 
10
 
11
 
12
MIPS Technologies. MIPS32 Architecture for Programmers Volume IV-a: The MIPS16 Application Specific Extension to the MIPS32 Architecture, March 2001.
 
13
Motorola Inc. Motorola DSP56300 Family Manual, Revision 3.0, November 2000.
 
14
 
15
P.Briggs, K.Cooper, and L.Torczon. Improvements to Graph Coloring Register Allocation. In Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation (PLDI). ACM, 1994.
16
 
17
Andrew M. R.Guthaus, J.S. Ringenberg, D. Ernst, T.M. Austin, T. Mudge, and R.B. Brown. Mibench: A free, commercially representative embedded benchmark suite. In IEEE 4th Annual Workshop on Workload Characterization. IEEE, 2001.
18
 
19
S. Segars. Low Power Design Techniques for Micro-processors. In IEEE International Solid-State Circuits Conferenc (ISSCC), 2001.
20
21
22
23


Collaborative Colleagues:
Xiaotong Zhuang: colleagues
Santosh Pande: colleagues