Skip to main content

Integrated Instruction Scheduling and Register Allocation Techniques

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

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

Abstract

An algorithm for integrating instruction scheduling and register allocation must support mechanisms for detecting excessive register and functional unit demands and applying reductions for lessening these demands. The excessive demands for functional units can be detected by identifying the instructions that can execute in parallel, and can be reduced by scheduling some of these instructions sequentially. The excessive demands for registers can be detected on-the-fly while scheduling by maintaining register pressure values or may be detected prior to scheduling using an appropriate representation such as parallel interference graphs or register reuse dags. Reductions in excessive register demands can be achieved by live range spilling or live range splitting. However, existing integrated algorithms that are based upon mechanisms other than register reuse dags do not employ live range splitting. In this paper, we demonstrate that for integrated algorithms, register reuse dags are more effective than either on-the-fly computation of register pressure or interference graphs and that live range splitting is more effective than live range spilling. Moreover the choice of mechanisms greatly impacts on the performance of an integrated algorithm.

Supported in part by NSF Grants CCR-9402226 and CCR-9808590 to the Univ. of Pittsburgh.

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. David A. Berson, Unification of register allocation and instruction scheduling in compilers for fine grain architectures. Ph.D. Thesis, Dept. of Computer Science, University of Pittsburgh, Pittsburgh, PA, November 1996.

    Google Scholar 

  2. David A. Berson, Rajiv Gupta, and Mary Lou Soffa. GURRR: A global unified resource requirements representation. In Proc. of ACM Workshop on Intermediate Representations, Sigplan Notices, vol. 30, pages 23–34, April 1995.

    Article  Google Scholar 

  3. David A. Berson, Rajiv Gupta, and Mary Lou Soffa. Resource Spackling: A framework for integrating register allocation in local and global schedulers. In Proc. of IFIP WG 10.3 Working Conference on Parallel Architectures and Compilation Techniques, pages 135–146, 1994.

    Google Scholar 

  4. David A. Berson, Rajiv Gupta, and Mary Lou Soffa. URSA: A Unified ReSource Allocator for registers and functional units in VLIW architectures. In Proc. of IFIP WG 10.3 Working Conference on Architectures and Compilation Techniques for Fine and Medium Grain Parallelism, pages 243–254, 1993.

    Google Scholar 

  5. Preston Briggs. Register allocation via graph coloring. Ph.D. Thesis, Dept. of Computer Science, Rice University, Houston, TX, April 1992. 257

    Google Scholar 

  6. David Bradlee, Susan Eggers, and Robert Henry. Integrating register allocation and instruction scheduling for riscs. In Proceedings of ASPLOS, April 1991.

    Google Scholar 

  7. Claude-Nicholas Fiechter, PDG C Compiler. Technical Report, Dept. of Computer Science, University of Pittsburgh, Pittsburgh, PA, 1993.

    Google Scholar 

  8. G. J. Chaitin, M. A. Auslander, A. K. Chandra, J. Cocke, M. E. Hopkins, and P. W. Markstein. Register allocation via coloring. Computer Languages, 6(1):47–58, 1981.

    Article  Google Scholar 

  9. F. Chow and J. Hennessy. Register allocation by priority-based coloring. ACM Trans. Prog. Lang. and Systems, 12(4):501–536, 1990.

    Article  Google Scholar 

  10. Jeanne Ferrante, Karl J. Ottenstein, and Joe D. Warren. The program dependence graph and its use in optimization. ACM Trans. Prog. Lang. and Systems, 9(3):319–349, 1987.

    Article  MATH  Google Scholar 

  11. James R. Goodman and Wie-Chung Hsu. Code scheduling and register allocation in large basic blocks. In Proc. of ACM Supercomputing Conf., pages 442–452, 1988.

    Google Scholar 

  12. Cindy Norris and Lori L. Pollock. Register allocation over the program dependence graph. In Proc. of Sigplan’ 94 Conf. on Programming Language Design and Implementation, pages 266–277, 1994.

    Google Scholar 

  13. Cindy Norris and Lori L. Pollock. An experimental study of several cooperative register allocation and instruction scheduling strategies. Proceedings of MICRO-28, Nov. 1995.

    Google Scholar 

  14. Cindy Norris and Lori L. Pollock. A scheduler-sensitive global register allocator. Proceedings of Supercomputing’93, pages 804–813, Portland, Oregon, 1993.

    Google Scholar 

  15. Shlomit S. Pinter. Register allocation with instruction scheduling: A new approach. In Proc. of Sigplan’ 93 Conf. on Programming Language Design and Implementation, pages 248–257, 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Berson, D.A., Gupta, R., Soffa, M.L. (1999). Integrated Instruction Scheduling and Register Allocation Techniques. In: Chatterjee, S., et al. Languages and Compilers for Parallel Computing. LCPC 1998. Lecture Notes in Computer Science, vol 1656. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48319-5_16

Download citation

  • DOI: https://doi.org/10.1007/3-540-48319-5_16

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66426-0

  • Online ISBN: 978-3-540-48319-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics