Abstract
This paper presents a simple and efficient method for instruction scheduling within basic blocks. An implementation proved to be extremely small while producing results comparable to other more complicated techniques. The algorithm is of quadratic complexity in the number of instructions but a linear run-time is achieved in practice. Because no (code) look-ahead is needed, the algorithm is even suitable for one-pass compilers.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Auslander, M., Hopkins, M., “An Overview of the PL.8 Compiler”, Proc. ACM SIGPLAN '82 Symposium on Compiler Construction, June 1982.
Bradlcc, D.G., Eggers, S.J., Henry, R.R., “Integrating Register Allocation and Instruction Scheduling for RISCs”, Proc. ACM Conference on Architectural Support for Progranuning Languages and Operating Systems, April 1991.
CRAY Y-MP Computer Systems Functional Description Manual, Cray Research Inc., Publication HR-4001,1988.
Crelier, R., OP2: A Portable Oberon Compiler, Computersysteme ETH Zürich, Tech. Report No. 125, Feb. 1990.
Davidson, J.W., Fraser, C.W., “Register Allocation and Exhaustive Peephole Optimization”, Software — Practice and Experience, (14) 9, Sept. 1984.
Davidson, J.W., “A Retargetable Instruction Reorganize”, Proc. ACM SIGPLAN '86 Symposium on Compiler Construction, June 1986.
Preliminary Alpha Architecture Handbook (Special Announcement Edition), Digital Equipment Corporation, Feb. 1992.
Dongarra, J.J., Hinds, A.R., “Unrolling Loops in FORTRAN”, Software — Practice and Experience, (9) 3, March 1979.
Freiburghouse, R.A., “Register Allocation Via Usage Counts”, Communications of the ACM, (17) 11, Nov. 1974.
Gibbons, P.B., Muchnick, S.S., “Efficient Instruction Scheduling for a Pipelined Architecture”, Proc. ACM SIGPLAN '86 Symposium on Compiler Construction, June 1986.
Gross, T., Code Optimization of Pipeline Constraints, Tech. Report No. 83-255, Computer Systems Lab, Stanford Univ., Dec. 1983.
Heeb, B., Design of the Processor-Board for the Ceres-2 Workstation, Computersysteme ETH Zürich, Tech. Report No. 93, Nov. 1988.
Hennessy, J., Gross, T., “Postpass Code Optimization of Pipeline Constraints”, ACM Transactions on Programming Languages and Systems, (5) 3, July 1983.
Kane, G., MIPS R2000 RISC Architecture, Prentice Hall, 1987.
Robbins, K.A., Robbins, S., The Cray X-MP/Model 24 — A Case Study in Pipelined Architecture and Vector Processing, Lecture Notes in Computer Science No. 374, Springer 1989.
The SPARC Architecture Manual, Sun Microsystems Inc., 1987.
Wirth, N., “The Programming Language Oberon”, Software — Practice and Experience, (18) 7, July 1988 and Computersysteme ETH Zürich, Tech. Report No. 143, Nov. 1990.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Griesemer, R. (1992). Scheduling instructions by direct placement. In: Kastens, U., Pfahler, P. (eds) Compiler Construction. CC 1992. Lecture Notes in Computer Science, vol 641. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-55984-1_21
Download citation
DOI: https://doi.org/10.1007/3-540-55984-1_21
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55984-9
Online ISBN: 978-3-540-47335-0
eBook Packages: Springer Book Archive