skip to main content
10.1145/158511.158519acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free Access

A novel framework of register allocation for software pipelining

Published:01 March 1993Publication History

ABSTRACT

Although software pipelining has been proposed as one of the most important loop scheduling methods, simultaneous scheduling and register allocation is less understood and remains an open problem [28]. The objective of this paper is to develop a unified algorithmic framework for concurrent scheduling and register allocation to support time-optimal software pipelining. A key intuition leading to this surprisingly simple formulation and its efficient solution is the association of maximum computation rate of a program graph with its critical cycles due to Reiter's pioneering work on Karp-Miller computation graphs [29]. In particular, our method generalizes the work by Callahan, Carr and Kennedy on scalar expansion[6], the work by Lam on modular variable expansion for software pipelined loops [20], and the work by Rau et al. on register allocation for modulo scheduled loops[28].

References

  1. 1.A. V. Aho, R. Sethi, and J. D. Ullman. Compilers-- Principles, Techniques, and Tools. Addison-Wesley Publishing Co., 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.A. Aiken. Compaction-based parallelization. (PhD thesis), Technical Report 88-922, Cornell University, 1988.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.A. Aiken and A. Nicolau. Optimal loop parallelization. In Proceedings of the 1988 A CM SIGPLAN Conference on Programming Languages Design and Implementation, June 1988.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.A. Aiken and A. Nicolau. A realistic resourceconstrained software pipelining algorithm. In Proceedings of the Third Workshop on Programming Languages and Compilers for Parallel Computing, Irvine, CA, August 1990.]]Google ScholarGoogle Scholar
  5. 5.D. G. Bradlee, S. J. Eggers, and R. R. Henry. Integrating register allocation and instruction scheduling for RISCs. International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS IV), pages 122-131, April 1991.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.David Callahan, Steve Carr, and Ken Kennedy. Improving register allocation for subscripted variables. Proceedings of the SIGPLAN '90 Conference on Programming Language Design and Implementation, June 1990. White Plains, NY.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.G. J. Chaitin. Register allocation & spilling via graph coloring. A CM SIGPLAN Syrup. on Compiler Construction, pages 98-105, 1982.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.G. J. Chaitin, M. Auslander, A. Chandra, J. Cocke, M. Hopkins, and P. Markstein. Register allocation via coloring. Computer Languages 6, pages 47-57, January 1981.]]Google ScholarGoogle Scholar
  9. 9.V. Chvatal. Linear Porgramming. W.H. Freeman and Company., 1983.]]Google ScholarGoogle Scholar
  10. 10.E. Duesterwald, R. Gupta, and M.L. Sofia. Register pipelining: An integrated approacn to register allocation for scalar and subscripted variables. Technical report, Department of Computer Science, University of Pittsburgh, 1991.]]Google ScholarGoogle Scholar
  11. 11.K. Ebcioglu and T. Nakatani. A new compilation technique for parallelization loops with unpredictable branches on a VLIW architecture. Technical report, IBM, 1990.]]Google ScholarGoogle Scholar
  12. 12.K. Ebcioglu. A compilation technique for software pipelining of loops with conditional jumps. In Proceedings o} the 20th Annual Workshop on Microprogramruing, December 1987.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.K. Ebcio~lu and A. Nicolau. A global resourceconstrained paraUelization technique. In Proceedings of the A CM SIGARCH International Conference on Supercomputing, June 1989.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.Christine Eisenbeis, William Jalby, Daniel Windheiser, and Francois Bodin. A strategy for array management in local memory. In Third Workshop on Programming Languages and Compilers }or Parallel Computing. University of California, Irvine, 1990. To be published by Pitman/MIT Press.]]Google ScholarGoogle Scholar
  15. 15.P. B. Gibbons and S. S. Muchnick. Efficient instruction scheduling for a pipelined architecture. In Proceedings of the A CM Symposium on Compiler Construction, pages 11-16, Palo Alto, CA, June 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.L. Hendren, G.R. Gao, E. Altman, and C. Mukerjl. A register allocation framework based on hierarchical cyclic interval graphs. Lecture Notes in Computer Science 641, pages 176-191, October 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.J. Hennessy and T. Gross. Postpass code optimization of pipelined constraints. A CM Transactions on Programming Languages and Systems, 5(3):422-448, July 1983.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.N. Karmarkar. A new polynomial-time algorithm for linear programming. Combinatorica, 4:373-395, 1984.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.L. G. Khachian. A polynomial algorithm in linear programming. Soviet Math. Doklady, 20:191-194, 1979.]]Google ScholarGoogle Scholar
  20. 20.Monica Lain. Software pipelining: An effective scheduling technique for VLIW machines. In Proceedings of the 1988 A CM SIGPLAN Conference on Programming Languages Design and Implementation, pages 318-328, Atlanta, GA, June 1988.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.Eugene L. Lawler. Combinatorial Optimization: Net. works and Matroids. Saunders College Publishing, Ft Worth, TX, 1976.]]Google ScholarGoogle Scholar
  22. 22.T. Nakatani and K. Ebcioglu. Using a lookahaed window in a compaction-based parallelizing compiler. In Proceedings of the 23rd Annual Workshop on Microprogramming and Microarchitectures, pages 57-68, 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.A. Nicolau, R. Potasman, and H. Wang. Register allocation, renaming and their impact on fine-grained parallelism. In U. Banerjee et al., editor, Languages and Compilers for Parallel Computing, Lecture Notes in Computer Science 589, pages 359-373, Santa Clara, California, 1992. Springer-Verlag.]] Google ScholarGoogle Scholar
  24. 24.Q. Ning and G.R. Gao. A novel framework of register allocation for software pipelining. Technical Report ACAPS Technique Memo 42, School of Computer Science, McGill University, Montreal, Quebec, Canada, 1992.]]Google ScholarGoogle Scholar
  25. 25.Qi Ning. Optimal Register Allocation to Support Time- Optimal Scheduling }or Loops. PhD thesis, in preparation, School of Computer Science, McGill University, 1992.]]Google ScholarGoogle Scholar
  26. 26.C. V. Ramamoorthy and G. S. Ho. Performance evaluation of asynchronous concurrent systems using Petri Nets. IEEE Transactions on Computers, pages 440- 448, September 1980.]]Google ScholarGoogle Scholar
  27. 27.B. R. Rau and C. D. Glaeser. Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing. In Proceedings o/ the 14th Annual Workshop on Microprogramruing, pages 183-198, 1981.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 28.B.R. Rau, M. Lee, P.P. Tirurnalai, and M.S. Schlansker. Register allocation for modulo scheduled loops: Strategies, algorithms and heuristics. In Proceedings of SIG- PLAN '92 Conf. on Programming Language Design and Implementation, San Francisco, CA, 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29.R. Reiter. Scheduling parallel computations. Journal of A CM, 15:590-599, October 1968.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 30.A. Schrijver. Theory of Linear and Integer Programming. John Wiley and Sons, 1986.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 31.R. F. Touzeau. A FORTRAN compiler for the FPS- 164 scientific computer. In Proceedings of the A CM SIGPLAN '8~ Symposium on Compiler Construction, pages 48-57, June 1984.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. 32.H.S. Warren. Instruction scheduling for the IBM RISC System/6000 processor. IBM J. Res. Develop., 34(1), January 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A novel framework of register allocation for software pipelining

            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
              POPL '93: Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
              March 1993
              510 pages
              ISBN:0897915607
              DOI:10.1145/158511

              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 March 1993

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

              Acceptance Rates

              POPL '93 Paper Acceptance Rate39of199submissions,20%Overall Acceptance Rate824of4,130submissions,20%

              Upcoming Conference

              POPL '25

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader