skip to main content
10.1145/55364.55407acmconferencesArticle/Chapter ViewAbstractPublication PagesicsConference Proceedingsconference-collections
Article
Free Access

Code scheduling and register allocation in large basic blocks

Published:01 June 1988Publication History

ABSTRACT

We discuss the issues about the interdependency between code scheduling and register allocation. We present two methods as solutions: (1) an integrated code scheduling technique; and (2) a DAG-driven register allocator. The integrated code scheduling method combines two scheduling techniques—one to reduce pipeline delays and the other to minimize register usage—into a single phase. By keeping track of the number of available registers, the scheduler can choose the appropriate scheduling technique to schedule a better code sequence. The DAG-driven register allocator uses a dependency graph to assist in assigning registers; it introduces much less extra dependency than does an ordinary register allocator. For large basic blocks, both approaches were shown to generate more efficient code sequences than conventional techniques in the simulations.

References

  1. Aho77.Aho, A. Y., S. C. Johnson, and J. D. Ullrrlan, "Code Generation for expressions with common subexpressions," JACM, 24:1, 146-160, 1977 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Aho86.Aho, A. V., J. D. Ullman, and R. Sethi, "Compilers Principles, Techniques, and Tools," Addison-Wesley, Reading, MA, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Ausl82.Auslander, M, and M. Hopkins, "An Overview of the PL.8 compiler," Proceedings of the SIGPLAN '82 Symposium on Compiler Construction, June, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Cray82.Cray Research inc., Cray-1 Computer System S Series Mainframe Reference Manual (HR-0029), 1982.Google ScholarGoogle Scholar
  5. Davi86.Davidson, J. W., "A Retargetable Instruction Reorganizer," Proceedings of the SIGPLAN '86 Symposium on Compiler Construction. June, 1986 Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Dong79.Dongarra, J. J. and A. R. Jinds, "Unrolling I.x~ps in Fortran,'" Software Practice and Experience 9, 3, pp. 219-226, Mar., 1979Google ScholarGoogle ScholarCross RefCross Ref
  7. Elli85.Ellis, J. R., "Bulldog; A Compiler for VLIW Architectures," PhJD. Thesis, YaleU/DCS/RR-364, Yale University, Feb,, 1985 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Fish81.Fisher, J., "Trace Scheduling: A Technique for Global Microcode Compaction," IEEE Transactions on Computers, Vol. C-30, No. 7, July 1981.Google ScholarGoogle Scholar
  9. Gibb86.Gibbons P. B., and S. S. Muchnick, "Efficient Instruction Scheduling for a Pipelined Architecture," Proceedings of the SIGPLaCN '86 Symposium on Compiler Construction, JUrl., 1986 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Henn83.Hermessy, J, L., and Thomas Gross, "Postpass Code Optimization of Pipeline Constraints," ACM Transactions on Programming Languages and Systems 5, 3, pp. 422-448, July 1983 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Henn84.Hennessy, J. L., "VLSI Processor Architecture," IEEE Transactions on Computers, Vol. c-33 No. 12, Dec., 1984.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Hsu87.Hsu, Wei-Chung, "Register Allocation and Code Scheduling for Load/Store Architectures" UW Computer Science Technique Report #722, Oct., 1987Google ScholarGoogle Scholar
  13. Kogg81.Kogge, P. M., "The Architecture of Pipelined Computers,~' McGraw-Hill, New York, 1981Google ScholarGoogle Scholar
  14. McMa72.McMahon, F. H, "FORTRAN CPU Performance Analysis", Lawrence Livermore Laboratories, 1972Google ScholarGoogle Scholar
  15. Milu86.Milutinovic, Veliko, "GaAs Microprocessor Technology" Computer, Vol. 19, No. 10, Oct. 1986 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Padu86.Padua, D. and M, J. Wolfe,. "Advanced Compiler 0ptimizations for Supercomputers," Communication of the ACM, Dec. 1986 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Seth70.Sethi, R. and J. D. Ullman, "The Generation of Optimal Code for Arithmetic Expressions," JACM 17, 6, 1970, pp. 715-728 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Thor70.Thornton, J. E., "Design o1: a Computer, The Control Data 6600," Scott, Foresman and Co., Glenview, IL, 1970. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Tjad70.Tjaden, G. S. and M. J. Plynn, "Detection and Parallel Execution of Independent lru~tmctions," IEEE Transactions on Computers 19(10):889-895, Oct., 1970Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Toma67.Tomasulo, R. M., "An Efficient Algorithm for Exploiting Multiple Arithmetic Units," IBM Journal of Research and Development V 11, pp. 25-33, Jan., 1967.Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Weis87.Weiss, S. and J. E. Smith, "A Study of Scalar Compilation Techniques for Pipelined Supercomputers" Second International Conference on Architectural Support for Programming Languages and Operating Systems," Oct., 1987. Google ScholarGoogle ScholarCross RefCross Ref
  22. Youn85.Young, H., "Evaluation of a Decoupled Computer Architecture and the Design of A Vector Extension," Computer Sciences Technical Report #603, July, 1985Google ScholarGoogle Scholar

Index Terms

  1. Code scheduling and register allocation in large basic blocks

              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
                ICS '88: Proceedings of the 2nd international conference on Supercomputing
                June 1988
                679 pages
                ISBN:0897912721
                DOI:10.1145/55364

                Copyright © 1988 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 1988

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • Article

                Acceptance Rates

                Overall Acceptance Rate584of2,055submissions,28%

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader