Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1133981.1134007acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

Profile-based global live-range splitting

Published: 11 June 2006 Publication History
  • Get Citation Alerts
  • 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.

    References

    [1]
    B. White, M. Almeida, and D. Jorna. IBM e-server zSeries 990 Technical Guide.
    [2]
    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.
    [3]
    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.
    [4]
    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.
    [5]
    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.
    [6]
    H. Kim. Region-based Register Allocation for EPIC Architectures. PhD thesis, New York University, January 2001.
    [7]
    J. Park and S. Moon. Optimistic Register Coalescing. ACM Transactions on Programming Languages and Systems. Vol. 26, No. 4, pages 735--765, July 2004.
    [8]
    J. Whaley. A Portable Sampling-Based Profiler for Java Virtual Machines. Java Grande 2000.
    [9]
    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.
    [10]
    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.
    [11]
    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.
    [12]
    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.
    [13]
    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.
    [14]
    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.
    [15]
    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.
    [16]
    P. Briggs. Register Allocation via Graph Coloring. PhD thesis, Rice University, April 1992.
    [17]
    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.
    [18]
    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.
    [19]
    Standard Performance Evaluation Corporation. SPECjvm98 Benchmarks, http://www.spec.org/osg/jvm98/.
    [20]
    z/Architecture Principles of Operation. Document number: SA22-7832-03.

    Cited By

    View all
    • (2010)Coloring-based coalescing for graph coloring register allocationProceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization10.1145/1772954.1772978(160-169)Online publication date: 24-Apr-2010
    • (2010)Preference-Guided register assignmentProceedings of the 19th joint European conference on Theory and Practice of Software, international conference on Compiler Construction10.1007/978-3-642-11970-5_12(205-223)Online publication date: 20-Mar-2010
    • (2009)Advances in Register Allocation TechniquesThe Compiler Design Handbook10.1201/9781420043839.ch21(21-1-21-27)Online publication date: 7-Dec-2009
    • Show More Cited By

    Index Terms

    1. Profile-based global live-range splitting

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      PLDI '06: Proceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation
      June 2006
      438 pages
      ISBN:1595933204
      DOI:10.1145/1133981
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 41, Issue 6
        Proceedings of the 2006 PLDI Conference
        June 2006
        426 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1133255
        Issue’s Table of Contents
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Sponsors

      In-Cooperation

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 11 June 2006

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. graph coloring
      2. live-range splitting
      3. register allocation

      Qualifiers

      • Article

      Conference

      PLDI06
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 406 of 2,067 submissions, 20%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)6
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 10 Aug 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2010)Coloring-based coalescing for graph coloring register allocationProceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization10.1145/1772954.1772978(160-169)Online publication date: 24-Apr-2010
      • (2010)Preference-Guided register assignmentProceedings of the 19th joint European conference on Theory and Practice of Software, international conference on Compiler Construction10.1007/978-3-642-11970-5_12(205-223)Online publication date: 20-Mar-2010
      • (2009)Advances in Register Allocation TechniquesThe Compiler Design Handbook10.1201/9781420043839.ch21(21-1-21-27)Online publication date: 7-Dec-2009
      • (2008)Copy coalescing by graph recoloringACM SIGPLAN Notices10.1145/1379022.137561043:6(227-237)Online publication date: 7-Jun-2008
      • (2008)Copy coalescing by graph recoloringProceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1375581.1375610(227-237)Online publication date: 7-Jun-2008

      View Options

      Get Access

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media