| Optimal register assignment to loops for embedded code generation |
| Full text |
Publisher Site
,
Pdf
(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 |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 0, Downloads (12 Months): 6, Citation Count: 2
|
|
|
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
|
P. Briggs , K. D. Cooper , K. Kennedy , L. Torczon, Coloring heuristics for register allocation, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.275-284, June 19-23, 1989, Portland, Oregon, United States
|
| |
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
|
Dirk Lanneer , Marco Cornero , Gert Goossens , Hugo De Man, Data routing: a paradigm for efficient data-path synthesis and code generation, Proceedings of the 7th international symposium on High-level synthesis, p.17-22, May 18-20, 1994, Niagra-on-the-Lake, Ontario, Canada
|
| |
14
|
Clifford Liem , Trevor May , Pierre Paulin, Register assignment through resource classification for ASIP microcode generation, Proceedings of the 1994 IEEE/ACM international conference on Computer-aided design, p.397-402, November 06-10, 1994, San Jose, California, United States
|
| |
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
|
Tom Wilson , Gary Grewal , Ben Halley , Dilip Banerji, An integrated approach to retargetable code generation, Proceedings of the 7th international symposium on High-level synthesis, p.70-75, May 18-20, 1994, Niagra-on-the-Lake, Ontario, Canada
|
INDEX TERMS
Primary Classification:
C.
Computer Systems Organization
C.3
SPECIAL-PURPOSE AND APPLICATION-BASED SYSTEMS
Subjects:
Real-time and embedded systems
Additional Classification:
C.
Computer Systems Organization
C.0
GENERAL
Subjects:
Instruction set design (e.g., RISC, CISC, VLIW)
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.4
Processors
Subjects:
Optimization;
Code generation
G.
Mathematics of Computing
G.2
DISCRETE MATHEMATICS
General Terms:
Algorithms,
Experimentation,
Languages,
Performance
Keywords:
data memory access,
embedded code generation,
exponential algorithm,
heuristic modification,
live variables,
loops,
minimal spill code,
optimal register assignment,
optimisation,
program control structures,
real-time systems,
scientific code,
storage allocation
|