Abstract
Code optimizations and restructuring transformations are typically applied before scheduling to improve the quality of generated code. However, in some cases, the optimizations and transformations do not lead to a better schedule or may even adversely affect the schedule. In particular, optimizations for redundancy elimination and restructuring transformations for increasing parallelism are often accompanied with an increase in register pressure. Therefore their application in situations where register pressure is already too high may result in the generation of additional spill code. In this paper we present an integrated approach to scheduling that enables the selective application of optimizations and restructuring transformations by the scheduler when it determines their application to be beneficial. The integration is necessary because information that is used to determine the effects of optimizations and transformations on the schedule is only available during instruction scheduling. Our integrated scheduling approach is applicable to various types of global scheduling techniques; in this paper we present an integrated algorithm for scheduling superblocks.
Partially supported by National Science Foundation PYI Award CCR-9157371 and a grant from Intel Corporation to the University of Pittsburgh.
Preview
Unable to display preview. Download preview PDF.
References
D. Berson, R. Gupta and M.L. Soffa, “Resource Spackling: A framework for integrating register allocation in local and global schedulers,” In Proc. of Intl. Conf. on Parallel Architectures and Compilation Techniques, pages 135–146, 1994.
D. Berson, R. Gupta and M.L. Soffa, “GURRR: A global unified resource requirements representation,” In ACM SIGPLAN Workshop on Intermediate Representations, Sigplan Notices, vol. 30, pages 23–34, April 1995.
P.P. Chang, S.A. Mahlke, and W-M. Hwu, “Using profile information to assist classic code optimizations,” Software-Practice and Experience, 21(12):1301–1321, Dec. 1991.
K. Ebcioglu, R.D. Groves, K-C. Kim, G. Silberman, and I. Ziv, “VLIW compilation techniques in a superscalar environment,” In Proc. of Sigplan Conf. on Prog. Language Design and Implementation, pages 36–48, 1994.
J.A. Fisher, “Trace scheduling: a technique for global microcode compaction,” IEEE Trans. on Computers, C-30(7):478–490, 1981.
R. Gupta and M.L. Soffa, “Region scheduling: an approach for detecting and redistributing parallelism,” IEEE Trans. on Software Engineering, 16(4):421–431, 1990.
P. Hsu and E. Davidson, “Highly concurrent scalar processing,” In Proc. of 13th Annual International Symposium on Computer Architecture, pages 386–395, 1986.
W-M. Hwu et al., “The superblock: an effective technique for VLIW and superscalar compilation,” In The Journal of Supercomputing vol. A, pages 229–248, 1993.
W-M. Hwu and Y. Patt, “Checkpoint repair for out-of-order execution machines,” In Proc. of 14th Annual Intl. Symp. on Comp. Architecture, pages 18–26, 1987.
J. Knoop, O. Ruthing and B. Steffen, “Optimal code motion: theory and practice,” In ACM Trans. on Programming Languages and Systems, 16(4):1117–1155, 1994.
J. Knoop, O. Ruthing, B. Steffen, “Partial dead code elimination,” In Proc. of Sigplan Conf. on Prog. Language Design and Implementation, pages 147–158, 1994.
S. Novack and A. Nicolau, “Mutation scheduling: a unified approach to compiling for fine-grain parallelism,” Proc. Languages and Compilers for Parallel Computing, LNCS 892, 1994.
C. Norris and L. Pollock, “A scheduler-sensitive global register allocator,” In Proc. of Supercomputing, pages 804–813, 1993.
S. Pinter, “Register allocation with instruction scheduling: a new approach,” In Proc. of Sigplan Conf. on Prog. Lang. Design and Impl., pages 248–257, 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Berson, D.A., Chang, P., Gupta, R., Soffa, M.L. (1997). Integrating program optimizations and transformations with the scheduling of instruction level parallelism. In: Sehr, D., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1996. Lecture Notes in Computer Science, vol 1239. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017254
Download citation
DOI: https://doi.org/10.1007/BFb0017254
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63091-3
Online ISBN: 978-3-540-69128-0
eBook Packages: Springer Book Archive