skip to main content
article
Free Access

Probabilistic register allocation

Published:01 July 1992Publication History
Skip Abstract Section

Abstract

A new global register allocation technique, probabilistic register allocation, is described. Probabilistic register allocation quantifies the costs and benefits of allocating variables to registers over live ranges so that excellent allocation choices can be made. Local allocation is done first, and then global allocation is done iteratively beginning in the most deeply nested loops. Because local allocation precedes global allocation, probabilistic allocation does not interfere with the use of well-known, high-quality local register allocation and instruction scheduling techniques.

References

  1. BCKT89 Preston Briggs, Keith D. Cooper, Ken Kennedy, and Linda Torczon. Coloring heuristics for register allocation. In Proceedings of the SlGPLAN '89 Conference on Programming Language Design and Implementation, pages 275-284, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Bea74 J.C. Beatty. Register assignment algorithm for generation of highly optimized object code. IBM Journal of Research and Development, 18(1):20-39, January 1974.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. BL92 Thomas Ball and James R. Larus. Optimally profiling and tracing programs. In Proceedings of the 19th Annual Symposium on Principles of Programming Languages, pages 59-70, January 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. CAC+81 G. J. Chaitin, M. A. Auslander, A. K. Chandra, J. Cooke, M. E. Hopkins, and P. W. Markstein. Register allocation via graph coloring. Computer Languages, 6:47- 57, January 1981.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. CH90 Fred C. Chow and John L. Hennessy. The priority-based coloring approach to register allocation. A CM Transactions on Programming Languages and Systems, 12(4):501- 536, January 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Cha82 G.J. Chaitin. Register allocation &: spilling via graph coloring. In Proceedings of the A CM SIGPLAN '82 Symposium on Compiler Construction, pages 98-101, June 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. CK91 David Callahan and Brian Koblenz. Register allocation via hierarchical graph coloring. In Proceedings of the SIGPLAN '91 Conference on Programming Language Design and Implementation, pages 192-203, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. FH91a Christopher W. Fraser and David R. Hanson. A code generation interface for ANSI C. Software--Practice and Experience, 21(9):963-988, September 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. FH91b Christopher W. Fraser and David R. Hanson. A retargetable compiler for ANSI C. $IGPLAN Notices, 26(10), October 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. FL88 Charles N. Fischer and Richard J. Leblanc, Jr. Crafting a Compiler. Benjamin/Cummings, Menlo Park, California, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Fre74 R.A. Freiburghouse. Register allocation via usage counts. Communications of the A CM, 17(11), November 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. HFG89 Wei-Chung Hsu, Charles N. Fischer, and James R. Goodman. On the minimization of loads/stores in local register allocation. IEEE Transactions on Software Engineering, 15(10):1252-1260, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. LH86 J.R. Larus and P. N. Hilfinger. Register allocation in the SPUR lisp compiler. In Pro. ceedings of the $ICPLAN '86 Symposium on Compiler Construction, pages 255-263, 1986. Google ScholarGoogle Scholar
  14. Mor91 W.G. Morris. CCG: A prototype coagulating code generator. In Proceedings of the SIGPLAN '91 Conference on Programming Language Design and Implementation, pages 45-58, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Probabilistic register allocation

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 27, Issue 7
        July 1992
        352 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/143103
        Issue’s Table of Contents
        • cover image ACM Conferences
          PLDI '92: Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
          July 1992
          352 pages
          ISBN:0897914759
          DOI:10.1145/143095

        Copyright © 1992 ACM

        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]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 July 1992

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader