skip to main content
article
Free Access

Efficient instruction scheduling for a pipelined architecture

Published:01 July 1986Publication History
Skip Abstract Section

Abstract

As part of an effort to develop an optimizing compiler for a pipelined architecture, a code reorganization algorithm has been developed that significantly reduces the number of runtime pipeline interlocks. In a pass after code generation, the algorithm uses a dag representation to heuristically schedule the instructions in each basic block.

Previous algorithms for reducing pipeline interlocks have had worst-case runtimes of at least O (n4). By using a dag representation which prevents scheduling deadlocks and a selection method that requires no lookahead, the resulting algorithm reorganizes instructions almost as effectively in practice, while having an O (n2) worst-case runtime.

References

  1. Ary83 Arya, S. Optimal Instruction Scheduling for a Class of Vector Processors: An Integer Programming Approach. Tech. Rept. CRL-TR-19-83, Computer Research Laboratory, the Univ. of Michigan, Ann Arbor, April 1983.Google ScholarGoogle Scholar
  2. Aus82 Auslander, M. & M. Hopkins. An Overview of the PL.8 Compiler. Proc. ACM SIGPLAN Syrup. on Compiler Construction, Boston, June 1982, pp. 22 - 31. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Con67 Conway, R.W., W.L. Maxwell & L.W. Miller, Theory of Scheduling, Addison-Wesley, Reading, MA, 1967.Google ScholarGoogle Scholar
  4. Cou86 Coutant, D.S. Retargetable High-Level Alias Analysis, Proc. ACM Syrup. on Princ. of Prog. Lang., St. Petersburg Beach, FL, January 1986, pp. 110- 118. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Dav81 Davidson, S., D. Landskov, B.D. Shriver & P.W. Mallett. Some Experiments in Local Microcode Compaction for Horizontal Machines. 1EEE Trans. on Computers, Vol. C-30, No. 7, July 1981, pp. 460 - 477.Google ScholarGoogle Scholar
  6. Fis81 Fisher, j.A. Trace Scheduling: A Technique for Global Microcode Compaction. IEEE Trans. on Computers, Vol. C-30, No. 7, July 1981, pp. 478 - 490.Google ScholarGoogle Scholar
  7. Gro83 Gross, T.R. Code Optimization of Pipeline Constraints. Tech. Rept. 83-255, Computer Systems Lab., Stanford Univ., Dec. 1983.Google ScholarGoogle Scholar
  8. Hen81 Hennessy, J.L. Symbolic Debugging of Optimized Code, ACM Trans. on Prog. Lang. and Sys., Vol. 3, No. 1, Jan. 1981, pp. 200 - 206.Google ScholarGoogle Scholar
  9. Hen83 Hennessy, J.L. & T.R. Gross. Postpass Code Optimization of Pipeline Constraints. ACM Trans. on Prog. Lang. and Sys, Vol. 5, No. 3, July 1983, pp. 422- 448. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Joh86 johnson, M.S. & T.C. Miller. Effectiveness of a Machine-Level, Global Optimizer, Proc. of the SIGPLAN '86 Conf. on Comp. Constr., June 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Knu68 Knuth, D.E. Fundamental Algorithms, Addison- Wesley, Reading, MA, p. 258.Google ScholarGoogle Scholar
  12. Kog81 Kogge, P.M. The Architecture of Pipelined Computers, McGraw-Hill, New York, 1981.Google ScholarGoogle Scholar
  13. Rym82 Rymarczyk, J.W. Coding Guidelines for Pipelined Processors, Proc. of the Symp. on Arch. Supt. for Prog. Lang. and Oper. Syst., Palo Alto, CA, March 1982, pp. 12- 19. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Sit78 Sites, R.L. Instruction Ordering for the Cray-1 Computer. Tech. Rept. 78-CS-023, Univ. of California, San Diego, July 1978.Google ScholarGoogle Scholar
  15. Spi71 Spillman, Thomas C., Exposing Side-Effects in a PldI Optimizing Compiler, Information Processing 81, North:Holland, 1972, pp. 376 - 381.Google ScholarGoogle Scholar
  16. Tho64 Thornton, J.E. Parallel Operation in the Control Data 6600, Proc. Fall Joint Comp. Conf., Part 2, Vol. 26, 1964, pp. 33 -40.Google ScholarGoogle Scholar
  17. Tok81 Tokoru, M., E. Tamura & T. Takizuka. Optimization of Microprograms. IEEE Trans. on Computers, Vol. C-30, No. 7, July 1981, pp. 491 - 504.Google ScholarGoogle Scholar
  18. Tom67 Tomasulo, R.M. An Efficient Algorithm for Exploiting Multiple Arithmetic Units, IBM J. of Res. and Devt., Vol. 11, No. 1, Jan. 1967, pp. 25 - 33.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Veg82 Vegdahl, S. Local Code Generation and Compaction in Optimizing Microcode Compilers, Ph.D. thesis, Carnegie-Mellon Univ., De~. 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Zel84 Zellweger, P.T. lnteractiv~ Source-Level Debugging of Optimized Programs, Research Report CSL-84-5, Xerox Palo Alto Research Center, Palo Alto, CA, May 1984.Google ScholarGoogle Scholar

Index Terms

  1. Efficient instruction scheduling for a pipelined architecture

            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 21, Issue 7
              July 1986
              275 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/13310
              Issue’s Table of Contents
              • cover image ACM Conferences
                SIGPLAN '86: Proceedings of the 1986 SIGPLAN symposium on Compiler construction
                July 1986
                275 pages
                ISBN:0897911970
                DOI:10.1145/12276

              Copyright © 1986 Authors

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 July 1986

              Check for updates

              Qualifiers

              • article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader