ACM Home Page
Please provide us with feedback. Feedback
A simple interprocedural register allocation algorithm and its effectiveness for LISP
Full text PdfPdf (2.56 MB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 11 ,  Issue 1  (January 1989) table of contents
Pages: 1 - 32  
Year of Publication: 1989
ISSN:0164-0925
Authors
Peter A. Steenkiste  Carnegie-Mellon Univ., Pittsburgh, PA
John L. Hennessy  Stanford Univ., Stanford, CA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 39,   Citation Count: 21
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/59287.59289
What is a DOI?

ABSTRACT

Register allocation is an important optimization in many compilers, but with per-procedure register allocation, it is often not possible to make good use of a large register set. Procedure calls limit the improvement from global register allocation, since they force variables allocated to registers to be saved and restored. This limitation is more pronounced in LISP programs due to the higher frequency of procedure calls. An interprocedural register allocation algorithm is developed by simplifying a version of interprocedural graph coloring. The simplification corresponds to a bottom-up coloring of the interference graph. The scheme is evaluated using a number of LISP programs. The evaluation considers the scheme's limitations and compares these “software register windows” against the hardware register windows used in the Berkeley RISC and SPUR processors.


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
BASART, E., AND FOLGER, D. RIDGE 32 Architecture--A RISC Variation. In Proceedings of the International Conference on Computer Design VLS! in Computers (Port Chester, N.Y., Oct., 1983). IEEE, New york, 1983.
 
4
BATALI, J., GOODHUE, E., HANSON, C., SHROBE, H., STALLMAN, R., AND SUSSMAN, G. The SCHEME-81 architecture--System and chip. In Proceedings of the 1982 Con{erence on Advanced Research in VLSI (Boston, Mass., Jan. 1982). MIT, Cambridge, Mass., 1982, pp. 69-77.
 
5
BAWDEN, A., GREENBLATT, R., HOLLOWAY, J., KNIGHT, T., MOON, D., AND WEINREB, D. LISP machine progress report. Tech. Rep. Memo 444, MIT Artificial Intelligence Laboratory, Cambridge, Mass., Aug. 1977.
 
6
BERENBAUM, A., DITZEL, D., AND MCLELLAN, H. Architectural innovations in the CRISP microprocessor. In Spring 1987 COMPCON Digest of Papers (San Francisco, Calif., Feb. 1987). IEEE, New York, 1987, pp. 91-95.
7
 
8
 
9
10
 
11
CHOW, F., HIMELSTEIN, M., KILLIAN, E., AND WEBER, L. Engineering a RISC compiler system. In Spring 1986 COMPCON Digest of Papers (San Francisco, Calif., Mar. 1986). IEEE, New York, 1986, pp. 132-137.
12
 
13
14
 
15
COUTANT, D., HAMMOND, C., AND KELLY, W. Compilers for the new generation of Hewlett- Packard computers. Hewlett-Packard J. I (Jan. 1986), 4-18.
16
17
 
18
 
19
 
20
 
21
GRISS, M. L., AND HEARN, A.C. A portable LISP compiler. Softw. Pract. Exper. 11, 6 (June 1981), 541-605.
22
23
 
24
HAUCK, E., AND DENT, B. Burroughs' B6500/B7500 stack mechanism. In Computer Structures: Principles and Examples. D. Siewiorek, C. Bell, and A. Newell, Eds., McGraw-Hill, New York, 1982, chap. 16, pp. 244-259.
 
25
HENNESSY, J. L., JOUPPl, N., BASKETT, F., AND GILL, J. MIPS: A VLSI processor architecture. In Proceedings of the CMU Conference on VLSI Systems and Computations (Pittsburgh, Pa., Oct. 1981). CMU, Pittsburgh, Pa., 1981, pp. 337-346.
 
26
HOROWITZ, M., HENNESSY, J., CHOW, P., GULAK, P., ACKEN, J., AGARWAL, A., CHU, C. Y., MCFARLING, S., PRZYBYLSKI, S., RICHARDSON, S., SALZ, A., SIMONI, R., STARK, D., STEENKISTE, P., TZIANC, S., AND WING, M. A 32b microprocessor with on-chip 2K byte instruction cache. In Digest 1987 International Solid-State Circuits Conference (New York, Feb. 1987). IEEE, New York, 1987, pp. 30-31.
 
27
HUGUET, M. A C-oriented register set design. Tech. Rep. CSD-850019, Computer Science Dept., UCLA, June 1985.
 
28
29
30
31
 
32
33
 
34
35
 
36
PATTERSON, D. A., AND SEQUIN, C.H. A VLSI RISC. Computer 15, 9 (Sept. 1982), 8-22.
 
37
PENDLETON, J. A design methodology for VLSI processors. Ph.D. thesis, Computer Science Div. (EECS), Un~. of California, Berkeley, Calif., Sept. 1985.
 
38
REINER, A. Cost-minimization in register assignment for retargetable compilers. Tech. Rep. CMU-CS-84-137, Carnegie-Mellon Univ., Pittsburgh, Pa., June 1985.
 
39
RICHARDSON, S., AND GANAPATHI, M. Interprocedural Observations. Stanford Univ., Stanford, Calif., Jan. 1988.
 
40
SITES, R. L. How to use 1000 registers. In Proceedings of the Caltech Conference on VLSI (Pasadena, Calif., Jan. 1979). California Institute of Technology, Pasadena, 1979, pp. 527-532.
41
 
42
43
 
44
45
 
46
47
 
48
49
50
 
51
 
52
 
53

CITED BY  21


REVIEW

"Karel De Vlaminck : Reviewer"

As RISC processors with many registers become more important, good register allocation is vital for overall performance. LISP and Prolog, the languages most used in AI, po  more...

Collaborative Colleagues:
Peter A. Steenkiste: colleagues
John L. Hennessy: colleagues