ABSTRACT
Live-range splitting is a technique to split the live range of a given variable into multiple subranges, each of which can be assigned to a different register or spilled out to memory in order to improve results of coloring register allocation. Previous techniques, such as aggressive live-range splitting, tend to produce extra spill code in the frequently executed (called hot) regions of the code, since they don't distinguish hot regions from others. We propose a new live-range splitting algorithm, which can reduce the amount of spill code in hot regions by coalescing the live ranges based on profile information after splitting the live ranges at every join and fork point in the control-flow graph. Our experimental results have shown that our new algorithm improved the performance of SPECjvm98 by up to 33% over aggressive live-range splitting and 7% over the base coloring algorithm without any live-range splitting.
- B. White, M. Almeida, and D. Jorna. IBM e-server zSeries 990 Technical Guide. Google Scholar
Digital Library
- D. Bernstein, M.C. Golumbic, Y. Mansour, R.Y. Pinter, D.Q. Goldin, H. Krawczyk, and I. Nahshon. Spill code minimization techniques for optimizing compilers. In Proceedings of the ACM SIGPLAN 1989 Conference on Programming Language Design and Implementation, pages 258--263, 1989. Google Scholar
Digital Library
- F. Chow and J. Hennessy. Register Allocation by Prioritybased Coloring. In Proceedings of the ACM SIGPLAN 1984 Symposium on Compiler Construction, SIGPLAN Notices Vol. 19, No. 6, pages 222--232, June 1984. Google Scholar
Digital Library
- G.J. Chaitin, M.A. Auslander, A.K. Chandra, J. Cocke, M.E. Hopkins, and P.W. Markstein. Register allocation via coloring. Computer Languages, Vol. 6, No. 1, pages 47--57, January 1981.Google Scholar
Digital Library
- G.J. Chaitin. Register allocation and spilling via graph coloring. In Proceedings of the ACM SIGPLAN 1982 Symposium on Compiler Construction, pages 201--207, SIGPLAN Notices Vol. 17, No. 6, pages 98--105, June 1982. Google Scholar
Digital Library
- H. Kim. Region-based Register Allocation for EPIC Architectures. PhD thesis, New York University, January 2001. Google Scholar
Digital Library
- J. Park and S. Moon. Optimistic Register Coalescing. ACM Transactions on Programming Languages and Systems. Vol. 26, No. 4, pages 735--765, July 2004. Google Scholar
Digital Library
- J. Whaley. A Portable Sampling-Based Profiler for Java Virtual Machines. Java Grande 2000. Google Scholar
Digital Library
- K. Ishizaki, M. Kawahito, T. Yasue, H. Komatsu, and T. Nakatani. A Study of Devirtualization Techniques for a Java Just-In-Time Compiler, In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Language, and Applications, pages 294--310, October 2000. Google Scholar
Digital Library
- K.D. Cooper and L.T. Sympson. Live range splitting in a graph coloring register allocator. In Proceedings of the 7th International Conference on Compiler Construction, LNCS 1383, pages 174--187, March 1998. Google Scholar
Digital Library
- L. George and A.W. Appel. Iterated register coalescing. ACM Transactions on Programming Languages and Systems. Vol. 18, No. 3, pages 300--324, May 1996. Google Scholar
Digital Library
- M. Arnold and B. G. Ryder. A Framework for Reducing the Cost of Instrumented Code. In Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation, pages 168--179, June 2001. Google Scholar
Digital Library
- N. Grcevski, A. Kielstra, K. Stoodley, M. Stoodley, and V. Sundaresan. JavaTM Just-In-Time Compiler and Virtual Machine Improvements for Server and Middleware Applications. Proceedings of the Third Virtual Machine Research and Technology Symposium. May 2004. Google Scholar
Digital Library
- P. Bergner, P. Dahl, D. Engebretsen, and M O'Keefe. Spill Code Minimization via Interference Region Spilling. In Proceedings of the ACM SIGPLAN 1997 Conference on Programming Language Design and Implementation, pages 287--295, June 1997. Google Scholar
Digital Library
- P. Briggs, K.D. Cooper, K. Kennedy, and L. Torczon. Coloring heuristics for register allocation. In Proceedings of the ACM SIGPLAN 1989 Conference on Programming Language Design and Implementation, pages 275--284, June 1989. Google Scholar
Digital Library
- P. Briggs. Register Allocation via Graph Coloring. PhD thesis, Rice University, April 1992. Google Scholar
Digital Library
- P. Kolte and M.J. Harrold. Load/Store Range Analysis for Global Register Allocation. In Proceedings of the ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation, pages 268--277, June 1993. Google Scholar
Digital Library
- R. Cytron, J. Ferrante, B.K. Rosen, M.N. Wegman, and F.K. Zadeck. Efficiently Computing Static Single Assignment Form and the Control Dependence Graph. ACM Transactions on Programming Languages and Systems, Vol. 13, No. 4, pages 451--490, October 1991. Google Scholar
Digital Library
- Standard Performance Evaluation Corporation. SPECjvm98 Benchmarks, http://www.spec.org/osg/jvm98/.Google Scholar
- z/Architecture Principles of Operation. Document number: SA22-7832-03.Google Scholar
Index Terms
Profile-based global live-range splitting
Recommendations
Profile-based global live-range splitting
Proceedings of the 2006 PLDI ConferenceLive-range splitting is a technique to split the live range of a given variable into multiple subranges, each of which can be assigned to a different register or spilled out to memory in order to improve results of coloring register allocation. Previous ...
Optimistic register coalescing
Graph-coloring register allocators eliminate copies by coalescing the source and target nodes of a copy if they do not interfere in the interference graph. Coalescing, however, can be harmful to the colorability of the graph because it tends to yield a ...
Live-range unsplitting for faster optimal coalescing
LCTES '09Register allocation is often a two-phase approach: spilling of registers to memory, followed by coalescing of registers. Extreme live-range splitting (i.e. live-range splitting after each statement) enables optimal solutions based on ILP, for both ...







Comments