ACM Home Page
Please provide us with feedback. Feedback
Optimal register assignment to loops for embedded code generation
Full text PdfPdf (449 KB)
Source ACM Transactions on Design Automation of Electronic Systems (TODAES) archive
Volume 1 ,  Issue 2  (April 1996) table of contents
Pages: 251 - 279  
Year of Publication: 1996
ISSN:1084-4309
Authors
David J. Kolson  Univ. of California, Irvine
Alexandru Nicolau  Univ. of California, Irvine
Nikil Dutt  Univ. of California, Irvine
Ken Kennedy  Rice Univ., Houston, TX
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 2,   Downloads (12 Months): 34,   Citation Count: 8
Additional Information:

abstract   references   cited by   index terms   review   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/233539.233542
What is a DOI?

ABSTRACT

One of the challenging tasks in code generation for embedded systems is register assignment. When more live variables than registers exist, some variables will necessarily be accessed from data memory. Because loops are typically executed many times and are often time-critical, good register assignment in loops is exceedingly important as accessing data memory can degrade performance. The issue of finding an optimal register assignment to loops has been open for some time. In this article, we present a technique for optimal (i.e., spill minimizing) register assignment to loops. First we present a technique for register assignment to architecture styles that are characterized by a consolidated register file. Then we extend the technique to include architecture styles that are characterized by distributed memories and/or a combination of general- and special-purpose registers. Experimental results demonstrate that although the optimal algorithm may be computationally prohibitive, heuristic versions obtain results with performance better than that of an existing graph coloring approach.


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
AHMED, I. AND CHEN, C. Y.R. 1991. Post-processor for datapath synthesis using multiport memories. In Proceedings of the ACM/IEEE International Conference on CAD. (San Jose, CA, Nov.) 276-279.
 
2
 
3
BALAKRISHNAN, M., ET AL. 1988. Allocation of multiport memories in data path synthesis. IEEE Trans. Comput.-Aided Des., 7, 4 (April), 536-540.
 
4
5
 
6
CHAITIN, G., AUSLANDER, M., CHANDRA, A., COOCKE, J., HOPKINS, M., AND MARKSTEIN, P. 1981. Register allocation via coloring. Comput. Lang. 6 (Jan.), 47-57.
7
 
8
9
 
10
11
 
12
 
13
KENNEDY, K. 1972. Index register allocation in straight line code and simple loops. In Design and Optimization of Compilers, R. Rustin, Ed. Prentice-Hall, Englewood Cliffs, NJ, 51-63.
14
15
 
16
 
17
 
18
19
 
20
 
21
 
22
 
23
PARK, C., KIM, T., AND LIU, C. L. 1993. Register allocation for data flow graphs with conditional branches and loops. In Proceedings of European Design Automation Conference (Euro-DAC). (Hamburg, Germany) 232-237.
 
24
PAULIN, P. G. AND KNIGHT, J.P. 1989. Force-directed scheduling for the behavioral synthesis of ASICs. IEEE Trans. Comput.-Aided Des. Integrated Circuits Syst. 8, 6 (June).
 
25
STALLMAN, R.M. 1992. Using and Porting GNU CC. Free Software Foundation.
 
26
 
27
 
28

CITED BY  8


REVIEW

"Robert Ballance : Reviewer"

Register assignment allocates scarce machine resources to computationally important data values. The quest for optimal register assignment, that is, a resource allocation resulting in the best use of the available registers, has been going on   more...

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