This paper describes both the techniques themselves and our experience building and using register allocators that incorporate them. It provides a detailed description of optimistic coloring and rematerialization. It presents experimental data to show the performance of several versions of the register allocator on a suite of FORTRAN programs. It discusses several insights that we discovered only after repeated implementation of these allocators.
|
7271
|
Computers and Intractability - A Guide to the Theory of NP-Completeness
– Garey, Johnson
- 1979
|
|
644
|
Efficiently computing static single assignment form and the control dependence graph
– Cytron, Ferrante, et al.
- 1991
|
|
359
|
Register allocation & spilling via graph coloring
– Chaitin
- 1982
|
|
265
|
Constant propagation with conditional branches
– Wegman, Zadeck
- 1991
|
|
165
|
Register allocation via coloring
– Chaitin, Auslander, et al.
- 1981
|
|
149
|
The priority-based coloring approach to register allocation. ACM Transactions on Pro~ramming Languages and Systems 12
– Chow
- 1990
|
|
120
|
Register allocation via graph coloring
– Briggs
- 1992
|
|
120
|
ParaScope: A Parallel Programming Environment
– Callahan, Cooper, et al.
- 1988
|
|
106
|
Automatic construction of sparse data flow evaluation graphs
– Choi, Cytron, et al.
- 1991
|
|
94
|
Register allocation by priority-based coloring
– Chow, Hennessy
- 1984
|
|
91
|
Register allocation via hierarchical graph coloring
– Callahan, Koblenz
- 1991
|
|
72
|
Singular value decomposition and least squares solutions
– Golub, Reinsch
- 1970
|
|
69
|
Computer Methods for Mathematical Computations
– Forsythe, Malcolm, et al.
- 1977
|
|
58
|
Spill code minimization techniques for optimizing compliers
– Bernstein, Golumbic, et al.
- 1989
|
|
56
|
A retargetable compiler for ANSI
– Fraser, Hanson
- 1991
|
|
47
|
Smallest-last ordering and clustering and graph coloring algorithms
– Matula, Beck
- 1983
|
|
32
|
Probabilistic register allocation
– Proebsting, Fischer
- 1992
|
|
30
|
Register allocation via clique separators
– Gupta, Soffa, et al.
- 1989
|
|
25
|
Automatic Storage Optimization
– Fabri
- 1982
|
|
20
|
Effectiveness of a machine-level global optimizer
– Johnson, Miller
- 1986
|
|
17
|
Graph coloring register allocation for processors with multi-register operands
– Nickerson
- 1990
|
|
16
|
Coloring register pairs
– Briggs, Cooper, et al.
- 1992
|
|
15
|
Register Allocation in the SPUR Lisp Compiler
– Larus, Hilfinger
- 1986
|
|
14
|
On programming: An interim report on the SETL project
– Schwartz
- 1973
|
|
13
|
Simple register spilling in a retargetable compiler
– Fraser, Hanson
- 1992
|
|
6
|
Store economy in closed operator schemes
– Lavrov
- 1961
|
|
5
|
An Automatic Programming System of High Efficiency
– Ershov
- 1966
|
|
5
|
Reduction of the problem of memory allocation in programming to the problem of colouring the vertices of a graph
– Ershov
- 1962
|
|
2
|
Private communication. Conversation during visit to Rice
– Hopkins
- 1991
|
|
2
|
Global Flow Analysis and Register Allocation for Simple Code Structures
– Kennedy
- 1971
|
|
1
|
Engineering a Compiler: VAX-11 Code Generation and Optimization
– Anklam, Cutler, et al.
- 1982
|
|
1
|
Spill code minimization techniquesfor optimizing compilers
– Bernstein, Goldin, et al.
- 1989
|
|
1
|
Register allocation and spilling via graph coloring. United States Patent 4,571,678
– Chaitin
- 1986
|
|
1
|
Reduction of the problemof memory allocationin programming to the problem of coloring the vertices of graphs
– Ershov
- 1962
|
|
1
|
allocationin the SPUR Lisp compiler
– Larus, Hilfinger
- 1986
|
|
1
|
Alpha -- an automatic programming system of high efficiency
– P
- 1966
|