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.
Preview
Unable to display preview. Download preview PDF.
References
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compiler: Principles, Techniques, and Tools. Addison Wesley, 1986.
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.
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.
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.
Preston Briggs. The massively scalar compiler project. Technical report, Rice University, July 1994.
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.
John R. Ellis. Bulldog: A Compiler for VLIW Architectures. The MIT Press, 1986.
Joseph A. Fisher. Trace scheduling: A technique for global microcode compaction. IEEE Transactions on Computers, C-30(7):478–490, July 1981.
G. E. Forsythe, M. A. Malcolm, and C. B. Moler. Computer Methods for Mathematical Computations. Prentice-Hall, Inc., Englewood Cliffs, NJ, 1977.
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.
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.
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.
Brett L. Huber. Path-selection heuristics for dominator-path scheduling. Master’s thesis, Computer Science Department, Michigan Technological University, Houghton, Michigan, 1995.
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.
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.
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.
David Landskov, Scott Davidson, Bruce Shriver, and Patrick W. Mallett. Local microcode compaction techniques. ACM Computing Surveys, pages 261–294, September 1980.
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.
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.
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.
Philip H. Sweany. Inter-Block Code Motion without Copies. PhD thesis, Computer Science Department, Colorado State University, Fort Collins, Colorado, 1992.
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.
Robert E. Tarjan and John H. Reif. Symbolic program analysis in almost-linear time. SIAM Journal on Computing, 11(1):81–93, February 1982.
Texas Instruments. TMS320C62xx CPU and Instruction Set Reference Guide, January 1997. Literature Number: SPRU189A.
Author information
Authors and Affiliations
Editor information
Rights 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