skip to main content
10.1145/155090.155116acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free Access

Load/store range analysis for global register allocation

Published:01 June 1993Publication History

ABSTRACT

Live range splitting techniques improve global register allocation by splitting the live ranges of variables into segments that are individually allocated registers. Load/store range analysis is a new technique for live range splitting that is based on reaching definition and live variable analyses. Our analysis localizes the profits and the register requirements of every access to every variable to provide a fine granularity of candidates for register allocation. Experiments on a suite of C and FORTRAN benchmark programs show that a graph coloring register allocator operating on load/store ranges often provides better allocations than the same allocator operating on live ranges. Experimental results also show that the computational cost of using load/store ranges for register allocation is moderately more than the cost of using live ranges.

References

  1. 1.A. V. Aho, R. Sethi and J. D. Ullman, Compilers, Principles, Techniques, and Tools, Addison- Wesley Publishing Company, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.D. Bernstein, D. Q. Goldin, M. C. Golumbic, H. Krawczyk, Y. Mansour, I. Nahshon and R. Y. Pinter, "Spill code minimization techniques for optimizing compilers", Proceedings of ti~e A CM $IGPLAN '89 Conference on Programmi~g Language Design and Implementation, $igplan Notices, vol. 24, no. 6, pp. 258-263, June, 198c~. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.P. Briggs, K. D. Cooper, K. Kennedy and L. Torezon, "Coloring heuristics for register allocation", Proceedings of the A CM ${GPLAN '89 Conference on Programming Language Design and implementation, Sigplan Notices, vol. 24, no. 6, pp. 275- 284, June, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.P. Briggs, K. D. Cooper and L. Torczon, "Rematerialization", Proceedings of the ACM SIG- PLAN '9~ Conference on Programming Language Design and Implementation, Sigplan Notices, vol. 27, no. 7, pp. 311-321, June, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.D. Callahan and B. Koblenz, "Register allocation via hierarchical graph coloring", Proceedings of the ACM $IGPLAN '91 Conference on Programming Language Design and Implementation, Sigplan Notices, vol. 26, no. 6, pp. 192-203, June, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.G. J. Chaitin, M. A. Auslander, A. K. Chandra, J. Cocke and P. W. Markstein, "Register allocation via coloring", Computer Languages, vol. 15, pp. 47-57, January, 1981.Google ScholarGoogle ScholarCross RefCross Ref
  7. 7.G. J. Chaitin, "Register allocation and spilling via coloring", Proceedings of the A CM S~GPLA N '82 Symposium on Compiler Construction, Sigplan Notices, vol. 17, no. 6, pp. 98-105, June, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.F. Chow and J. Hennessy, "The priority-based coloring approach to register allocation", A CM Transactions on Programming Languages and Systems, vol. 12, no. 4, pp. 501-536, October, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.R. Cytron and J. Ferrante, "What's in a name? The value of renaming for parallelism detection and storage allocation", Proceedings of the 1987 International Conference on Parallel Processing, pp. 19-27, August, 1987.Google ScholarGoogle Scholar
  10. 10.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", A CM Transactions on Programming Languages and Systems, vol. 13, no. 4, pp. 451-490, October, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.S.I. Feldman, D. M. Gay, M. W. Maimone and N. L. Schryer, A Fortran-to-C converter, Computing Science Technical Report No. 149, AT2~T Bell Laboratories, Murray Hill NJ, November, 1990.Google ScholarGoogle Scholar
  12. 12.M. R. Garey and D. S. Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness, W.H. Freeman and Company, New York, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.M. J. Harrold and P. Kolte, "Combat: A compiler based data flow testing system", Proceedings of the 10th Pacific Northwest Software Quality Conference, October, 1992.Google ScholarGoogle Scholar
  14. 14.J. L. Hennessy and D. A. Patterson, Computer Architecture: A Quantitative Approach, Morgan Kaufmann Publishers, Inc., 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.W.-C. Hsu, C. N. Fischer and J. R. Goodman, "On the minimization of loads/stores in local register allocation", IEEE Transactions on Software Engineering, vol. 15, no. 10, pp. 1252-1260, October, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.P. Kolte, "Load/store range analysis for global register allocation," Masters Paper, Clemson University, August, 1992.Google ScholarGoogle Scholar
  17. 17.J. R. Larus and P. N. Hilfinger, "Register allocation in the SPUR Lisp compiler", Proceedings of the A CM Symposium on Compiler Construction, Sigplan Notices, vol. 21, no. 6, pp. 255-263, June, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.T. A. Proebsting and C. N. Fischer, "Probabilistic register allocation", Proceedings of the A CM SIGPLAN '9~ Conference on Programming Language Design and Implementation, Sigplan Notices, vol. 27, no. 7, pp. 300-310, June, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.R. M. Stallman, "Using and porting GNU CC (version 1.37.1)," Free Software Foundation, Inc., Cambridge MA, February, 1990.Google ScholarGoogle Scholar

Index Terms

  1. Load/store range analysis for global 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
          • Published in

            cover image ACM Conferences
            PLDI '93: Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
            August 1993
            313 pages
            ISBN:0897915984
            DOI:10.1145/155090

            Copyright © 1993 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 June 1993

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

            Acceptance Rates

            Overall Acceptance Rate406of2,067submissions,20%

            Upcoming Conference

            PLDI '24

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader