skip to main content
10.1145/384198.384205acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

Register Allocation for Banked Register File

Published:01 August 2001Publication History

ABSTRACT

A banked register file is a register file partitioned into banks. A register in a banked register file is addressed with the register number in conjunction with the active bank number. A banked register file may be employed to reduce the number of bits for register operands in the instruction encoding at the cost of bank changes and inter-bank data transfers. Although a banked register file is introduced to provide sufficient registers and reduce memory traffic, it may on the other hand inflate code by unwanted bank hanges and excessive inter-bank data movements. In this context, code quality heavily depends on the register allocator that decides the location of each variable. This paper addresses a heuristic approach to register allocation for exploiting two register banks. It performs global register allocation with the primary bank registers, while reducing the register pressure by doing local register allocation with the secondary bank registers. Experimental results show that the proposed register allocator eliminates a significant amount of memory traffic while achieving smaller code size compared to an allocator that utilizes the primary bank only.

References

  1. 1.Intel Corporation. MCS51 Microcontroller Family User's Manual. Intel Corporation, Feb 1994.]]Google ScholarGoogle Scholar
  2. 2.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:47-57, 1981.]]Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.G.J. Chaitin. Register Allocation and Spilling via Graph Coloring. SIGPLAN Symposium on Compiler Construction, pages 98-105, June 1982.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.P. Briggs, K.D. Cooper, and L. Torczon. Improvements to Graph Coloring Register Allocation. Transactions on Programming Languages and Systems, 16(3):428-455, May 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.R. Morgan. Building an Optimizing Compiler. Digital Press, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.Alan Tucker. Coloring a Family of Circular Arcs. SIAM Journal on Applied Mathematics, 29(3):493-502, November 1975.]]Google ScholarGoogle ScholarCross RefCross Ref
  7. 7.B.-S. Yang, S.-M. Moon, S. Park, J. Lee, S. Lee, J. Park, Y.C. Chung, S. Kim, K. Ebcioglu, and E. Altman. LaTTe: A Java VM Just-in-Time Compiler with Fast and Efficient Register Allocation. In Proceedings of the 1999 International Conference on Parallel Architectures and Compilation Techniques (PACT '99), pages 128-138, Newport Beach, California, October 12-16, 1999. IEEE Computer Society Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.C.W. Fraser and D.R. Hanson. Simple Register Spilling in a Retargetable Compiler. Software - Practice and Experience, 22(1):85-99, January 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.L.J. Hendren, G.R. Gao, E.R. Altman, and C. Mukerji. A Register Allocation Framework Based on Hierarchical Cyclic Interval Graphs. In Compiler Construction, 4th International Conference on Compiler Construction, volume 641 of Lecture Notes in Computer Science, pages 176-191, Paderborn, Germany, 5-7 October 1992. Springer.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.J. Park and S.-M. Moon. Optimistic Register Coalescing. In Proceedings of the 1998 International Conference onParallel Architectures and Compilation Techniques (PACT '98), pages 196-204, Paris, France, October 12-18, 1998. IEEE Computer Society Press.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.SAMSUNG Electronics Corp. CalmRISC8 Specification. SAMSUNG Electronics Corp., 1999.]]Google ScholarGoogle Scholar
  12. 12.D.-H. Kim. Advanced Compiler Optimization for CalmRISC8 Low-End Embedded Processor. Lecture Notes in Computer Science, 1781:173-188, March 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.C.W. Fraser and D.R. Hanson. A Retargetable C Compiler: Design and Implemtation. Addison-Wesley Pub Co., Jan 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.M.Z. Zastre. Compacting Object Code via Parameterized Procedural Abstraction. Master's thesis, Simon Fraser University, 1993.]]Google ScholarGoogle Scholar

Index Terms

  1. Register Allocation for Banked Register File

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      OM '01: Proceedings of the 2001 ACM SIGPLAN workshop on Optimization of middleware and distributed systems
      August 2001
      250 pages
      ISBN:1581134266
      DOI:10.1145/384198

      Copyright © 2001 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 August 2001

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Upcoming Conference

      PLDI '24

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader