|
ABSTRACT
Global register allocation plays a major role in determining the efficacy of an optimizing compiler. Graph coloring has been used as the central paradigm for register allocation in modern compilers. A straightforward coloring approach can suffer from several shortcomings. These shortcomings are addressed in this paper by coloring the graph using a priority ordering. A natural method for dealing with the spilling emerges from this approach. The detailed algorithms for a priority-based coloring approach are presented and are contrasted with the basic graph-coloring algorithm. Various extensions to the basic algorithms are also presented. Measurements of large programs are used to determine the effectiveness of the algorithm and its extensions, as well as the causes of an imperfect allocation. Running time of the allocator and the impact of heuristics aimed at reducing that time are also measured.
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
|
CHAITIN, G. J., AUSLANDER, M. A., CHANDRA, A. K., COCKE, J., HOPKINS, M. E., AND MARKSTEIN, P. Register allocation via coloring. Comput. Lang. 6 (1981), 47-57.
|
| |
4
|
|
 |
5
|
|
 |
6
|
|
| |
7
|
CHOW, F., HIMELSTEIN, M., KILLIAN, E., AND WEBER, L. Engineering a RISC compiler system. In Proceedings of COMPCON (San Francisco, Mar. 4-6, 1986). IEEE, New York, 1986, pp. 132-137.
|
 |
8
|
|
| |
9
|
|
 |
10
|
|
 |
11
|
|
| |
12
|
MIPS COMPUTER SYSTEMS, INC. MIPS Language Programmer's Guide. MIPS Computer Systems, Inc., Sunnyvale, Calif., 1986.
|
 |
13
|
|
| |
14
|
MOUSSOURIS, J., CRUDELE, L., FREITAS, D., HANSEN, C., HUDSON, E., PRZYBYLSK1, S., RIORDAN, T., AND ROWEN, C. A CMOS RISC processor with integrated system functions. In Proceedings of COMPCON (San Francisco, Mar. 4-6, 1986). IEEE, New York, 1986, pp. 126-137.
|
CITED BY 73
|
|
|
|
|
|
|
|
Yumin Zhang , Xiaobo (Sharon) Hu , Danny Z. Chen, Global register allocation for minimizing energy consumption, Proceedings of the 1999 international symposium on Low power electronics and design, p.100-102, August 16-17, 1999, San Diego, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ali-Reza Adl-Tabatabai , Michał Cierniak , Guei-Yuan Lueh , Vishesh M. Parikh , James M. Stichnoth, Fast, effective code generation in a just-in-time Java compiler, ACM SIGPLAN Notices, v.33 n.5, p.280-290, May 1998
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gert Goossens , Johan Van Praet , Dirk Lanneer , Werner Geurts , Augusli Kifli , Clifford Liem , Pierre G. Paulin, Embedded software in real-time signal processing systems: design technologies, Readings in hardware/software co-design, Kluwer Academic Publishers, Norwell, MA, 2001
|
|
|
|
|
|
|
|
|
|
|
|
John Plevyak , Xingbin Zhang , Andrew A. Chien, Obtaining sequential efficiency for concurrent object-oriented languages, Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.311-321, January 23-25, 1995, San Francisco, California, United States
|
|
|
|
|
|
Ana Azevedo , Alex Nicolau , Joe Hummel, Java annotation-aware just-in-time (AJIT) complilation system, Proceedings of the ACM 1999 conference on Java Grande, p.142-151, June 12-14, 1999, San Francisco, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
David J. Kolson , Alexandru Nicolau , Nikil Dutt , Ken Kennedy, Optimal register assignment to loops for embedded code generation, Proceedings of the 8th international symposium on System synthesis, p.42-47, September 13-15, 1995, Cannes, France
|
|
|
David M. Gillies , Dz-ching Roy Ju , Richard Johnson , Michael Schlansker, Global predicate analysis and its application to register allocation, Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture, p.114-125, December 02-04, 1996, Paris, France
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Richard E. Hank , Wen-Mei W. Hwu , B. Ramakrishna Rau, Region-based compilation: an introduction and motivation, Proceedings of the 28th annual international symposium on Microarchitecture, p.158-168, November 29-December 01, 1995, Ann Arbor, Michigan, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
T. Suganuma , T. Ogasawara , M. Takeuchi , T. Yasue , M. Kawahito , K. Ishizaki , H. Komatsu , T. Nakatani, Overview of the IBM Java just-in-time compiler, IBM Systems Journal, v.39 n.1, p.175-193, January 2000
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fang Lu , Lei Wang , Xiaobing Feng , Zhiyuan Li , Zhaoqing Zhang, Exploiting idle register classes for fast spill destination, Proceedings of the 22nd annual international conference on Supercomputing, June 07-12, 2008, Island of Kos, Greece
|
|
|
Li Wang , Xuejun Yang , Jingling Xue , Yu Deng , Xiaobo Yan , Tao Tang , Quan Hoang Nguyen, Optimizing scientific application loops on stream processors, ACM SIGPLAN Notices, v.43 n.7, July 2008
|
|
|
Xuejun Yang , Li Wang , Jingling Xue , Yu Deng , Ying Zhang, Comparability graph coloring for optimizing utilization of stream register files in stream processors, Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming, February 14-18, 2009, Raleigh, NC, USA
|
|
|
|
|
|
|
|
|
Xue-Jun Yang , Yu Deng , Li Wang , Xiao-Bo Yan , Jing Du , Ying Zhang , Gui-Bin Wang , Tao Tang, SRF coloring: stream register file allocation via graph coloring, Journal of Computer Science and Technology, v.24 n.1, p.152-164, January 2009
|
REVIEW
"Martti J. Tienari : Reviewer"
Modern compilers should make good use of the fastest memory
resource available to them: the set of hardware registers provided by
the target machine. This paper presents a priority-based coloring scheme
as a solution to this allocation problem
more...
|