MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Optimal Spilling for CISC Machines with Few Registers (2000) [48 citations — 1 self]

by Andrew W. Appel ,  Lal George
In Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Add To MetaCart

Abstract:

Register allocation based on graph coloring performs poorly for machines with few registers, if each temporary is held either in machine registers or memory over its entire lifetime. With the exception of short-lived temporaries, most temporaries must spill -- including long lived temporaries that are used within inner loops. Liverange splitting before or during register allocation helps to alleviate the problem but prior techniques are sometimes complex, make no guarantees about subsequent colorability and thus require further iterations of splitting, pay no attention to addressing modes, and make no claim to optimality. We formulate the register allocation problem for CISC architectures with few registers in two parts: an integer linear program that determines the optimal location to break up the implementation of a live range between registers and memory, and a register assignment phase that we guarantee to complete without further spill code insertion. Our linear programming model ...

Citations

262 AMPL: A Modeling Language for – Fourer, Gay, et al. - 1993
149 The priority-based coloring approach to register allocation. ACM Transactions on Pro~ramming Languages and Systems 12 – Chow - 1990
132 Improvements to graph coloring register allocation – Briggs, Cooper, et al. - 1994
107 Iterated register coalescing – George, Appel - 1996
77 Modern Compiler Implementation in ML – Appel - 1998
48 Optimal and near-optimal global register allocations using 01 integer programming – Goodwin, Wilken - 1996
22 Precise register allocation for irregular architectures – Kong, Wilken - 1998
21 A portable and optimizing backend for the SML/NJ compiler – George, Guillaume, et al. - 1994
21 On the geographical problem of the four colors – Kempe
15 Integrated instruction scheduling and register allocation techniques – Berson, Gupta, et al. - 1998
15 Register Allocation in the SPUR Lisp Compiler – Larus, Hilfinger - 1986
14 Global register allocation based on graph fusion – Lueh, Gross, et al. - 1996
4 Allocation via Graph Coloring – Register - 1992
4 Optimization with IBM-OSL – Hung, Rom, et al. - 1993
1 fetched September 8 – page - 2000
1 hp 9000 series 700 model 735/99. http://www.spec.org/ osg/cpu95/results/res9509/p027.html – Hewlett-packard - 1995