Skip to main content

Integrating program optimizations and transformations with the scheduling of instruction level parallelism

  • Instruction Scheduling and Register Allocation
  • Conference paper
  • First Online:
Book cover Languages and Compilers for Parallel Computing (LCPC 1996)

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

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.

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. 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.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. J.A. Fisher, “Trace scheduling: a technique for global microcode compaction,” IEEE Trans. on Computers, C-30(7):478–490, 1981.

    Google Scholar 

  6. 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.

    Article  Google Scholar 

  7. P. Hsu and E. Davidson, “Highly concurrent scalar processing,” In Proc. of 13th Annual International Symposium on Computer Architecture, pages 386–395, 1986.

    Google Scholar 

  8. 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.

    Article  Google Scholar 

  9. 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.

    Google Scholar 

  10. 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.

    Article  Google Scholar 

  11. 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.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. C. Norris and L. Pollock, “A scheduler-sensitive global register allocator,” In Proc. of Supercomputing, pages 804–813, 1993.

    Google Scholar 

  14. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

David Sehr Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints 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

Publish with us

Policies and ethics