|
ABSTRACT
This paper describes a global progressive register allocator, a register allocator that uses an expressive model of the register allocation problem to quickly find a good allocation and then progressively find better allocations until a provably optimal solution is found or a preset time limit is reached. The key contributions of this paper are an expressive model of global register allocation based on multicommodity network flows that explicitly represents spill code optimization, register preferences, copy insertion, and constant rematerialization; two fast, but effective, heuristic allocators based on this model; and a more elaborate progressive allocator that uses Lagrangian relaxation to compute the optimality of its allocations. Our progressive allocator demonstrates code size improvements as large as 16.75% compared to a traditional graph allocator. On average, we observe an initial improvement of 3.47%, which increases progressively to 6.84% as more time is permitted for compilation.
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
|
Ravindra K. Ahuja , Thomas L. Magnanti , James B. Orlin, Network flows: theory, algorithms, and applications, Prentice-Hall, Inc., Upper Saddle River, NJ, 1993
|
 |
2
|
|
| |
3
|
B. M. Baker and J. Sheasby. Accelerating the convergence of subgradient optimisation. European Journal of Operational Research, 117(1):136--144, August 1999.
|
| |
4
|
L. A. Belady. A study of replacement algorithms for virtual-storage computer. IBM Systems Journal, 5(2):78--101, 1966.
|
 |
5
|
Peter Bergner , Peter Dahl , David Engebretsen , Matthew O'Keefe, Spill code minimization via interference region spilling, Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, p.287-295, June 16-18, 1997, Las Vegas, Nevada, United States
|
 |
6
|
D. Bernstein , M. Golumbic , y. Mansour , R. Pinter , D. Goldin , H. Krawczyk , I. Nahshon, Spill code minimization techniques for optimizing compliers, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.258-263, June 19-23, 1989, Portland, Oregon, United States
|
| |
7
|
Hans Bodlaender , Jens Gustedt , Jan Arne Telle, Linear-time register allocation for a fixed number of registers, Proceedings of the ninth annual ACM-SIAM symposium on Discrete algorithms, p.574-583, January 25-27, 1998, San Francisco, California, United States
|
| |
8
|
|
 |
9
|
|
 |
10
|
|
 |
11
|
|
 |
12
|
|
 |
13
|
|
| |
14
|
K. Cooper, A. Dasgupta, and J. Eckhardt. Revisiting graph coloring register allocation: A study of the Chaitin-Briggs and Callahan-Koblenz algorithms. In Proc. of the Workshop on Languages and Compilers for Parallel Computing (LCPC'05), October 2005.
|
| |
15
|
|
| |
16
|
|
| |
17
|
C. Fu, K.Wilken, and D. Goodwin. A faster optimal register allocator. The Journal of Instruction-Level Parallelism, 7:1--31, January 2005.
|
 |
18
|
|
 |
19
|
|
| |
20
|
U. Hirnschrott, A. Krall, and B. Scholz. Graph coloring vs. optimal register allocation for optimizing compilers. In JMLC, pp. 202--213, 2003.
|
| |
21
|
|
| |
22
|
ILOG CPLEX. http://www.ilog.com/products/cplex.
|
| |
23
|
K. Kennedy. Design and optimization of compilers, Index register allocation in straight line code and simple loops, pp. 51--63. Prentice- Hall, 1972.
|
| |
24
|
|
| |
25
|
D. Koes and S. C. Goldstein. An analysis of graph coloring register allocation. Technical Report CMU-CS-06-111, Carnegie Mellon University, March 2006.
|
 |
26
|
|
| |
27
|
|
 |
28
|
|
| |
29
|
|
| |
30
|
|
 |
31
|
|
 |
32
|
|
| |
33
|
A. R. Madabushi. Lagrangian relaxation / dual approaches for solving large-scale linear programming problems. Master's thesis, Virginia Polytechnic Institute and State University, February 1997.
|
 |
34
|
|
| |
35
|
|
 |
36
|
|
 |
37
|
|
 |
38
|
|
 |
39
|
John Ruttenberg , G. R. Gao , A. Stoutchinin , W. Lichtenstein, Software pipelining showdown: optimal vs. heuristic methods in a production compiler, Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, p.1-11, May 21-24, 1996, Philadelphia, Pennsylvania, United States
|
 |
40
|
|
| |
41
|
|
 |
42
|
Omri Traub , Glenn Holloway , Michael D. Smith, Quality and speed in linear-scan register allocation, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.142-151, June 17-19, 1998, Montreal, Quebec, Canada
|
 |
43
|
|
|