|
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
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
| |
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
|
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
|
| |
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
|
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
|
| |
17
|
Stan Liao , Srinivas Devadas , Kurt Keutzer , Steve Tjiang, Instruction selection using binate covering for code size optimization, Proceedings of the 1995 IEEE/ACM international conference on Computer-aided design, p.393-399, November 05-09, 1995, San Jose, California, United States
|
| |
18
|
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
|
 |
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
|
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
|
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...
|