Skip to main content

Minimum Register Instruction Scheduling: A New Approach for Dynamic Instruction Issue Processors

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1999)

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

Abstract

Modern superscalar architectures with dynamic scheduling and register renaming capabilities have introduced subtle but important changes into the tradeoffs between compile-time register allocation and instruction scheduling. In particular, it is perhaps not wise to increase the degree of parallelism of the static instruction schedule at the expense of excessive register pressure which may result in additional spill code. To the contrary, it may even be beneficial to reduce the register pressure at the expense of constraining the degree of parallelism of the static instruction schedule. This leads to the following interesting problem: given a data dependence graph (DDG) G, can we derive a schedule S for G that uses the least number of registers ?

In this paper, we present a heuristic approach to compute the near-optimal number of registers required for a DDG G (under all possible legal schedules). We propose an extended list-scheduling algorithm which uses the above number of required registers as a guide to derive a schedule for G that uses as few registers as possible. Based on such an algorithm, an integrated approach for register allocation and instruction scheduling for modern superscalar architectures can be developed.

This work was supported by research grants NSF CCR-9808522, NSF MIPS-970715, and NSF CISE-9726388.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. V. Aho, R. Sethi, and J. D. Ullman. Compilers —Principles, Techniques, and Tools. Addison-Wesley Publishing Co., Reading, MA, corrected edition, 1988.

    Google Scholar 

  2. D. Berson, R. Gupta, and M. L. Soffa. URSA: A Unified ReSource Allocator for registers and functional units in VLIW architectures. In Proc. of the Conf. on Parallel Architectures and Compilation Techniques, PACT’ 98, Paris, France, June 1998.

    Google Scholar 

  3. D. Berson, R. Gupta, and M. L. Soffa. Integrated instruction scheduling and register allocation techniques. In Proc. of the Eleventh International Workshop on Languages and Compilers for Parallel Computing, LNCS, Springer Verlag, Chapel Hill, NC, Aug. 1998.

    Google Scholar 

  4. D. G. Bradlee, S. J. Eggers, and R. R. Henry. Integrating register allocation and instruction scheduling for RISCs. In Proc. of the Fourth Intl. Conf. on Architectural Support for Programming Languages and Operating Systems, pages 122–131, Santa Clara, CA, Apr. 1991.

    Google Scholar 

  5. P. Briggs, K. D. Cooper, and L. Torczon. Rematerialization. In Proc. of the ACM SIGPLAN’ 92 Conf. on Programming Language Design and Implementation, pages 311–321, San Francisco, CA, June 1992.

    Google Scholar 

  6. G. J. Chaitin. Register allocation and spilling via graph coloring. In Proc. of the SIGPLAN’ 82 Symp. on Compiler Construction, pages 98–105, Boston, MA, June 1982.

    Google Scholar 

  7. P. P. Chang, D. M. Lavery, S. A. Mahlke, W. Y. Chen, and W. W. Hwu The importance of prepass code scheduling for superscalar and superpipelined processors IEEE Transactions on Computers, 44(3):353–370, March 1995.

    Google Scholar 

  8. L. George and A. W. Appel. Iterated register coalescing. In Conf. Record of the 23rd ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, pages 208–218, St. Petersburg, FL, Jan. 1996.

    Google Scholar 

  9. P. B. Gibbons and S. S. Muchnick. Efficient instruction scheduling for a pipelined architecture. In Proc. of the SIGPLAN’ 86 Symp. on Compiler Construction, pages 11–16, Palo Alto, CA, June 1986.

    Google Scholar 

  10. M.C. Golumbic. Algorithmic Graph Theory and Perfect Graphs. Academic Press, New York, 1980.

    MATH  Google Scholar 

  11. J. R. Goodman and W-C. Hsu. Code scheduling and register allocation in large basic blocks. In Conf. Proc., 1988 Intl. Conf. on Supercomputing, pages 442–452, St. Malo, France, July 1988.

    Google Scholar 

  12. R. Govindarajan, C. Zhang, and G. R. Gao. Minimum register instruction scheduling: A new approach for dynamic instruction issue processors. CAPSL Technical Memo, Dept. of Electrical and Computer Engg., University of Delaware, Newark, DE, July 1999.

    Google Scholar 

  13. Madhavi G. Valluri and R. Govindarajan. Evaluating register allocation and instruction scheduling techniques in out-of-order issue processors. in Proc. of the Conf. on Parallel Architectures and Compilation Techniques, PACT’ 99, Newport Beach, CA, Oct., 1999.

    Google Scholar 

  14. S.S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers, Inc., San Francisco, CA, 1997.

    Google Scholar 

  15. C. Norris and L. L. Pollock. Register allocation over the Program Dependence Graph. In Proc. of the ACM SIGPLAN’ 94 Conf. on Programming Language Design and Implementation, pages 266–277, Orlando, FL, June 20–24, 1994.

    Google Scholar 

  16. C. Norris and L. L. Pollock. An experimental study of several cooperative register allocation and instruction scheduling strategies. In Proc. of the 28th Ann. Intl. Symp. on Microarchitecture, pages 169–179, Ann Arbor, MI, Nov. 1995.

    Google Scholar 

  17. S. S. Pinter. Register allocation with instruction scheduling: A new approach. In Proc. of the ACM SIGPLAN’ 93 Conf. on Programming Language Design and Implementation, pages 248–257, Albuquerque, NM, June 1993.

    Google Scholar 

  18. J.E. Smith and G. Sohi. The microarchitecture of superscalar processors. Proc. of the IEEE, 83(12):1609–1624, Dec. 1995.

    Google Scholar 

  19. Raúl Silvera, Jian Wang, Guang R. Gao, and R. Govindarajan. A register pressure sensitive instruction scheduler for dynamic issue processors. In Proc. of the Conf. on Parallel Architectures and Compilation Techniques, PACT’ 97, pages 78–89, San Francisco, CA, June 1997.

    Google Scholar 

  20. H. S. Warren, Jr. Instruction scheduling for the IBM RISC System/6000 processor. IBM Jl. of Research and Development, 34(1):85–92, Jan. 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Govindarajan, R., Zhang, C., Gao, G.R. (2000). Minimum Register Instruction Scheduling: A New Approach for Dynamic Instruction Issue Processors. In: Carter, L., Ferrante, J. (eds) Languages and Compilers for Parallel Computing. LCPC 1999. Lecture Notes in Computer Science, vol 1863. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44905-1_5

Download citation

  • DOI: https://doi.org/10.1007/3-540-44905-1_5

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67858-8

  • Online ISBN: 978-3-540-44905-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics