ACM Home Page
Please provide us with feedback. Feedback
Optimal register assignment to loops for embedded code generation
Full text Publisher SitePublisher Site PdfPdf (201 KB)
Source International Symposium on Systems Synthesis archive
Proceedings of the 8th international symposium on System synthesis table of contents
Cannes, France
Pages: 42 - 47  
Year of Publication: 1995
ISBN:0-89791-771-5
Authors
David J. Kolson  Dept. of Information and Computer Science, University of California, Irvine, Irvine, CA
Alexandru Nicolau  Dept. of Information and Computer Science, University of California, Irvine, Irvine, CA
Nikil Dutt  Dept. of Information and Computer Science, University of California, Irvine, Irvine, CA
Ken Kennedy  Dept. of Computer Science, Rice University, Houston, TX
Sponsors
IEEE-CS\TCDA : TC Design Automation
SIGDA: ACM Special Interest Group on Design Automation
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 0,   Downloads (12 Months): 6,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

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

ABSTRACT

Abstract: One of the challenging tasks in code generation for embedded systems is register assignment. When more live variables than registers exist, some variables are necessarily accessed from data memory. Because loops are typically executed many times and are often time-critical, good register assignment in loops is exceedingly important, since accessing data memory can degrade performance. The issue of finding an optimal register assignment to loops, one which minimizes the number of spills between registers and memory, has been open for some time. In this paper, we address this issue and present an optimal, but exponential, algorithm which assigns registers to loop bodies such that the resulting spill code is minimal. We also show that a heuristic modification performs as well as the exponential approach on typical loops from scientific code.


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
 
3
G. Chaitin, M. Auslander, A. Chandra, J. Coocke, M. Hopkins, and P. Markstein. Register Allocation Via Coloring. Computer Languages, 6, January 1981.
4
 
5
M. Balakrishnan et al. Allocation of Multiport Memories in Data Path Synthesis. IEEE Trans. on CAD, 7(4), April 1988.
 
6
7
 
8
 
9
K. Kennedy. Index Register Allocation in Straight Line Code and Simple Loops. In 1%. Rustin, editor, Design and Optimization of Compilers. Prentice-Hall, 1972.
10
 
11
D. J. Kolson, A. Nicolau, and K. Kennedy. An Algorithm for Minimizing Spill Code in Loops. Technical Report 94-43, U.C. Irvine, October 1994. Also available as Rice University Technical Report: CRPC-TR94482.
12
 
13
 
14
 
15
 
16
C. Park, T. Kim, and C. L. Liu. Register Allocation for Data Flow Graphs with Conditional Branches and Loops. Euro- DAC '93, 1993.
 
17
 
18


Collaborative Colleagues:
David J. Kolson: colleagues
Alexandru Nicolau: colleagues
Nikil Dutt: colleagues
Ken Kennedy: colleagues