Skip to main content

Register allocation, renaming and their impact on fine-grain parallelism

  • V. Fine Grain Parallelism
  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1991)

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

Abstract

It is well known that renaming is an important tool for enhancing parallelization. However, at the fine-grain level renaming involves the addition of extra registers which may affect register allocation. Thus a tradeoff between register allocation and parallelism has to be made to optimize the code performance for fine-grain parallel machines (i.e. pipelined, VLIW's, superscalars). Because of the complexity involved, previous compilers have avoided making this tradeoff by separating register allocation from code reorganization (scheduling). Unfortunately, this separation' can lead to severe performance problems. We propose in this paper a new approach which circumvents these traditional problems while yielding an efficient implementation. Some benchmarks are used to illustrate the effect of our technique.

This work was supported in part by ONR grant N00014-91-J-1406 and NSF grant CCR8996124.

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. A. S. Aiken. Compaction-Based Parallelization. PhD thesis, Cornell University, 1988.

    Google Scholar 

  2. A. Aiken and A. Nicolau. Perfect Pipelining: A new loop parallelization technique. In Proceedings of the 1988 European Symposium on Programming. Springer Verlag Lecture Notes in Computer Science no. 300, March 1988.

    Google Scholar 

  3. M. Breternitz Jr. Architecture Synthesis of High-Performance Application-Specific Processors. PhD thesis, Carnegie Mellon University, April 1991.

    Google Scholar 

  4. R. Cytron and J. Ferrante. What's in a name? or The value of renaming for parallelism detection and storage allocation. Proceedings of the 1987 International Conference on Parallel Processing, 1987.

    Google Scholar 

  5. R. Cytron, J. Ferrante, B. K. Rosen, M.N. Wegman and F.K. Zadeck. An efficient method of computing static single assignment form. 16th Annual ACM Symposium on Principles of Programming Languages, Austin, TX, January 1989.

    Google Scholar 

  6. R. Cytron, D.J. Kuck and A.V. Veidenbaum. The effect of restructuring compilers on program performance for high-speed computers. Computer Physics Communications, 37:37–48, 1985.

    Google Scholar 

  7. K.Ebcioglu. A Compilation Technique for Software Pipelining of Loops with Conditional Jumps. Proceedings of MICR020, pp. 69–79, ACM Press, 1987.

    Google Scholar 

  8. K.Ebcioglu. Some Design Ideas for a VLIW Architecture for Sequential-Natured Software. Proceedings IFIP, 1988.

    Google Scholar 

  9. K.Ebcioglu, and A.Nicolau. A global resource-constrained parallelization technique. In Proc. ACM SIGARCH ICS-89: International Conference on Supercomputing, Greece, June 1989.

    Google Scholar 

  10. J. R. Ellis. Bulldog-A Compiler for VLIW Architectures. MIT Press, 1986.

    Google Scholar 

  11. J. A. Fisher. Trace Scheduling: A technique for global microcode compaction. IEEE Transactions on Computers, No. 7,pp. 478–490, 1981.

    Google Scholar 

  12. T. Gross, M. S. Lam. Compilation for high-performance systolic array. Proceedings of the 1986 SIGPLAN Symposium on Compiler Construction, July 1986.

    Google Scholar 

  13. M. Kumar. Effect of Storage Allocation/Reclamation Methods on Parallelism and Storage Requirements. Proceedings of the 14th Annual International Symposium on Computer Architecture, Pittsburgh, PA, June 1987.

    Google Scholar 

  14. A. Nicolau. Uniform Parallelism Exploitation in Ordinary Programs. Proceedings of the 1985 International Conference on Parallel Processing, 1985.

    Google Scholar 

  15. A. Nicoiau, R. Potasman and H. Wang. Register allocation, renaming and their impact on parallelism. Technical Report, University of California, Irvine, April 1991.

    Google Scholar 

  16. B. R Rau, C. D. Glaeser. Efficient Code Generation for Horizontal Architectures: Compiler Techniques and Architectural Support. Proceedings of the 9th Symposium on Computer Architecture, April 1982.

    Google Scholar 

  17. R. Sethi, A. Aho, J.D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading, Mass., 1986.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Nicolau, A., Potasman, R., Wang, H. (1992). Register allocation, renaming and their impact on fine-grain parallelism. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1991. Lecture Notes in Computer Science, vol 589. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0038667

Download citation

  • DOI: https://doi.org/10.1007/BFb0038667

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-55422-6

  • Online ISBN: 978-3-540-47063-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics