ABSTRACT
For irregular architectures global register allocation is still a challenging problem that has not been successfully solved so far. The graph-coloring analogy of traditional approaches does not match the needs of register allocation for such architectures which feature non-orthogonal instruction sets and small register files. This work proposes a fundamentally new approach to global register allocation for irregular architectures. Our approach formulates global allocation as a partitioned boolean quadratic optimization problem (PBQP) that allows generic modeling of processors peculiarities. Because PBQP is NP-complete we present a heuristic that exhibits a nearly linear run-time complexity.We integrated our register allocator with the Infineon Carmel C Compiler which is based on the Open Compiler Environment from Atair Software. A DSP benchmark suite was used to compare the performance of our register allocator with a graph-coloring approach and with an optimal allocation. The experiments show that our new approach performs better than a traditional graph coloring approach for irregular architectures.
- Andrew Appel and Lal George. Optimal spilling for CISC machines with few registers. ACM SIGPLAN Notices 36(5): 243--253, May 2001. Google ScholarDigital Library
- P. Briggs, K. D. Cooper, and L. Torczon. Improvements to graph coloring register allocation. ACM Transactions on Programming Languages and Systems (TOPLAS), 16(3): 428--455, May 1994. Google ScholarDigital Library
- G. J. Chaitin. Register allocation and spilling via graph coloring. ACM SIGPLAN Notices 17(6): 98--105, June 1982. Google ScholarDigital Library
- P. Briggs K. D. Cooper and L. Torczon. Coloring register pairs. ACM Letters on Programming Languages and Systems, (TOPLAS), 1(1): 3--13, March 1992. Google ScholarDigital Library
- G. Finke, R. E. Burkard, and F. Rendl. Quadratic assignment problems. Annals of Discrete Mathematics 31: 61--82, 1987.Google Scholar
- Lal George and Andrew W. Appel. Iterated register coalescing. ACM Transactions on Programming Languages and Systems 18(3): 300--324, May 1996. Google ScholarDigital Library
- David W. Goodwin and Kent D. Wilken. Optimal and near-optimal global register allocation using 0-1 integer programming. Software & Practice and Experience 26(8): 929--965, August 1996. Google ScholarDigital Library
- T. Kong and K. D. Wilken. Precise register allocation for irregular register architectures. In Proceedings of the 31st Annual ACM/IEEE International Symposium on Microarchitecture (MICRO-98), pages 297--307, Los Alamitos, November 30--December 2 1998. IEEE Computer Society. Google ScholarDigital Library
- B. R. Nickerson. Graph coloring register allocation for processors with multi-register operannds. ACM SIGPLAN 1990 Conf. on Compiler Construction, SIGPLAN Notices 25(6): 40--52, June 1990. Google ScholarDigital Library
- Homepage of Atair Software GmbH. www.atair.co.at/oce.Google Scholar
- Homepage of Infineon. www.infineon.com/dsp.Google Scholar
- Jinpyo Park and Soo-Mook Moon. Optimistic register coalescing. In Proceedings of the 1998 International Conference on Parallel Architectures and Compilation Techniques (PACT '98), pages 196--204, Paris, France, October 12--18, 1998. IEEE Computer Society Press. Google ScholarDigital Library
- Michael D. Smith and Glenn Holloway. Graph-coloring register allocation for irregular architectures. Technical report, Harvard University, 2000.Google Scholar
- Wayne L. Winston. Introduction to Mathematical Programming International Thomson Publishing, 1995.Google Scholar
Index Terms
- Register allocation for irregular architectures
Recommendations
Register allocation for irregular architectures
For irregular architectures global register allocation is still a challenging problem that has not been successfully solved so far. The graph-coloring analogy of traditional approaches does not match the needs of register allocation for such ...
Differential register allocation
PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementationMicro-architecture designers are very cautious about expanding the number of architected registers (also the register field), because increasing the register field adds to the code size, raises I-cache and memory pressure, complicates processor ...
Differential register allocation
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementationMicro-architecture designers are very cautious about expanding the number of architected registers (also the register field), because increasing the register field adds to the code size, raises I-cache and memory pressure, complicates processor ...
Comments