Skip to main content

Non-local instruction scheduling with limited code growth

  • Refereed Papers
  • Conference paper
  • First Online:
Languages, Compilers, and Tools for Embedded Systems (LCTES 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1474))

Included in the following conference series:

  • 905 Accesses

Abstract

Instruction scheduling is a necessary step in compiling for many modern microprocessors. Traditionally, global instruction scheduling techniques have outperformed local techniques. However many of the global scheduling techniques described in the literature have a side effect of increasing the size of compiled code. In an embedded system, the size of compiled code is often a critical issue. In such circumstances, the scheduler should use techniques that avoid increasing the size of the generated code. This paper explores two global scheduling techniques, extended basic block scheduling and dominator path scheduling, that do not increase the size of the object code, and, in some cases, decrease it.

This work has been supported by DARPA and the USAF Research Laboratory through Award F30602-97-2-298.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compiler: Principles, Techniques, and Tools. Addison Wesley, 1986.

    Google Scholar 

  2. David Bernstein, Doron Cohen, and Hugo Krawczyk. Code duplication: An assist for global instruction scheduling. SIGMICRO Newsletter, 22(12):103–113, December 1991. Proceedings of the 24th Annual International Symposium on Microarchitecture.

    Google Scholar 

  3. David Bernstein, Dina Q. Goldin, Martin C. Golumbic, Hugo Krawczyk, Yishay Mansour, Itai Nahshon, and Ron Y. Pinter. Spill code minimization techniques for optimizing compilers. SIGPLAN Notices, 24(7):258–263, July 1989. Proceedings of the ACM SIGPLAN ’89 Conference on Programming Language Design and Implementation.

    Article  Google Scholar 

  4. David Bernstein and Michael Rodeh. Global instruction scheduling for superscalar machines. SIGPLAN Notices, 26(6):241–255, June 1991. Proceedings of the ACM SIGPLAN ’91 Conference on Programming Language Design and Implementation.

    Article  Google Scholar 

  5. Preston Briggs. The massively scalar compiler project. Technical report, Rice University, July 1994.

    Google Scholar 

  6. Kemal Ebcioglu and Toshio Nakatani. A new compilation technique for parallelizing regions with unpredictable branches on a VLIW architecture. In Proceedings of the Workshop on Languages and Compilers for Parallel Computing, August 1989.

    Google Scholar 

  7. John R. Ellis. Bulldog: A Compiler for VLIW Architectures. The MIT Press, 1986.

    Google Scholar 

  8. Joseph A. Fisher. Trace scheduling: A technique for global microcode compaction. IEEE Transactions on Computers, C-30(7):478–490, July 1981.

    Google Scholar 

  9. G. E. Forsythe, M. A. Malcolm, and C. B. Moler. Computer Methods for Mathematical Computations. Prentice-Hall, Inc., Englewood Cliffs, NJ, 1977.

    Google Scholar 

  10. Stefan Freudenberger, Thomas R. Gross, and P. Geoffrey Lowney. Avoidance and supression of compensation code in a trace scheduling compiler. ACM Transactions on Programming Languages and Systems, 16(4):1156–1214, July 1994.

    Article  Google Scholar 

  11. Phillip B. Gibbons and Steven S. Muchnick. Efficient instruction scheduling for a pipelined architecture. SIGPLAN Notices, 21(7):11–16, July 1986. Proceedings of the ACM SIGPLAN ’86 Symposium on Compiler Construction.

    Article  Google Scholar 

  12. Rajiv Gupta and Mary Lou Soffa. Region scheduling: An approach for detecting and redistributing parallelism. IEEE Transactions on Software Engineering, 16(4):421–431, April 1990.

    Article  Google Scholar 

  13. Brett L. Huber. Path-selection heuristics for dominator-path scheduling. Master’s thesis, Computer Science Department, Michigan Technological University, Houghton, Michigan, 1995.

    Google Scholar 

  14. Wen-Mei W. Hwu, Scott A. Mahlke, William Y. Chen, Pohua P. Chang, Nancy J. Warter, Roger A. Bringmann, Roland G. Ouellette, Richard E. Hank, Tokuzo Kiyohara, Grant E. Haab, John G. Holm, and Daniel M. Lavery. The superblock: An effective technique for VLIW and superscaler compilation. Journal of Supercomputing — Special Issue, 7:229–248, July 1993.

    Google Scholar 

  15. Jens Knoop, Oliver Rüthing, and Bernhard Steffen. Lazy code motion. SIGPLAN Notices, 27(7):224–234, July 1992. Proceedings of the ACM SIGPLAN ’92 Conference on Programming Language Design and Implementation.

    Article  Google Scholar 

  16. Jens Knoop, Oliver Rüthing, and Bernhard Steffen. Partial dead code elimination. SIGPLAN Notices, 29(6):147–158, June 1994. Proceedings of the ACM SIGPLAN ’94 Conference on Programming Language Design and Implementation.

    Article  Google Scholar 

  17. David Landskov, Scott Davidson, Bruce Shriver, and Patrick W. Mallett. Local microcode compaction techniques. ACM Computing Surveys, pages 261–294, September 1980.

    Google Scholar 

  18. P. Geoffrey Lowney, Stephen M. Freudenberger, T. J. Karzes, W. D. Lichtenstein, Robert P. Nix, J. S. O’Donnell, and J. C. Ruttenburg. The Multiflow trace scheduling compiler. Journal of Supercomputing — Special Issue, 7:51–142, July 1993.

    Google Scholar 

  19. R.T. Prosser. Applications of boolean matrices to the analysis of flow diagrams. In Proceedings of the Eastern Joint Computer Conference, pages 133–138. Spartan Books, NY, USA, December 1959.

    Google Scholar 

  20. B. Ramakrishna Rau and Joseph A. Fisher. Instruction-level parallel processing: History, overview, and perspective. Journal of Supercomputing — Special Issue, 7:9–50, July 1993.

    Google Scholar 

  21. Philip H. Sweany. Inter-Block Code Motion without Copies. PhD thesis, Computer Science Department, Colorado State University, Fort Collins, Colorado, 1992.

    Google Scholar 

  22. Philip H. Sweany and Steven J. Beaty. Dominator-path scheduling — A global scheduling method. SIGMICRO Newsletter, 23(12):260–263, December 1992. Proceedings of the 25th Annual International Symposium on Microarchitecture.

    Google Scholar 

  23. Robert E. Tarjan and John H. Reif. Symbolic program analysis in almost-linear time. SIAM Journal on Computing, 11(1):81–93, February 1982.

    Article  MATH  MathSciNet  Google Scholar 

  24. Texas Instruments. TMS320C62xx CPU and Instruction Set Reference Guide, January 1997. Literature Number: SPRU189A.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Frank Mueller Azer Bestavros

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Cooper, K.D., Schielke, P.J. (1998). Non-local instruction scheduling with limited code growth. In: Mueller, F., Bestavros, A. (eds) Languages, Compilers, and Tools for Embedded Systems. LCTES 1998. Lecture Notes in Computer Science, vol 1474. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0057791

Download citation

  • DOI: https://doi.org/10.1007/BFb0057791

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-65075-1

  • Online ISBN: 978-3-540-49673-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics