Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1375527.1375574acmconferencesArticle/Chapter ViewAbstractPublication PagesicsConference Proceedingsconference-collections
research-article

Exploiting idle register classes for fast spill destination

Published: 07 June 2008 Publication History

Abstract

On today's microprocessors, there often exist several different types of registers, e.g. general purpose registers and floating point registers. A given program may use one type of registers much more frequently than other types. This creates an opportunity to employ the infrequently used registers as spill destinations for the more frequently used register types. In this paper, we present a code optimization method named idle register exploitation (IRE) to exploit such opportunities. We developed a model, called the IRE model, or IREM, to determine the static performance gains of IRE versus spilling to the stack. On a microprocessor with fast data paths between different types of registers, we find that IRE method speeds up the execution of the SPECint benchmark suite from 1.7% to 10%. In contrast, on microprocessors with less efficient data transfer paths, the performance gain is limited. In some cases, performance may even suffer degradation. This result argues strongly for the adoption of fast data paths between different types of registers for the purpose of reducing register spills, which is important in view of the increased significance of memory bottlenecks on future microprocessors.

References

[1]
G. J. Chaitin, Register allocation & spilling via graph coloring, Proceedings of the 1982 SIGPLAN symposium on Compiler construction, p.98--105, June 23--25, 1982, Boston, Massachusetts, United States
[2]
D. Bernstein, M. Golumbic, y. Mansour, R. Pinter, D. Goldin, H. Krawczyk, I. Nahshon, Spill code minimization techniques for optimizing compliers, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.258--263, June 19--23, 1989, Portland, Oregon, United States
[3]
Fred C. Chow, John L. Hennessy, The priority--based coloring approach to register allocation, ACM Transactions on Programming Languages and Systems (TOPLAS), v.12 n.4, p.501--536, Oct. 1990
[4]
P. Briggs, K. D. Cooper, K. Kennedy, L. Torczon, Coloring heuristics for register allocation, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.275--284, June 19--23, 1989, Portland, Oregon, United States
[5]
Briggs, P. Register Allocation via Graph Coloring. PhD thesis, Rice University, Apr. 1992.
[6]
Preston Briggs, Keith D. Cooper, Linda Torczon, Improvements to graph coloring register allocation, ACM Transactions on Programming Languages and Systems (TOPLAS), v.16 n.3, p.428--455, May 1994
[7]
S. Subramanya Sastry, Subbarao Palacharla, James E. Smith, Exploiting idle floating--point resources for integer execution, Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, p.118--129, June 17--19, 1998, Montreal, Quebec, Canada
[8]
Michael D. Smith, Norman Ramsey, and Glenn Holloway, A Generalized Algorithm for Graph Coloring Register Allocation, Proceedings of the ACM SIGPLAN 2004 conference on Programming language design and implementation, Washington, DC, USA.
[9]
Goebel, Kurt J. (Mountain View, CA, US), Float register spill cache method, system, and computer program product, United States Patent 5901316, http://www.freepatentsonline.com/5901316.html
[10]
Subbarao Palacharla, J. E. Smith, Decoupling integer execution in superscalar processors, Proceedings of the 28th annual international symposium on Microarchitecture, p.285--290, November 29--December 01, 1995, Ann Arbor, Michigan, United States.
[11]
E. J. McLellan, D. A. Webb, The Alpha 21264 Microprocessor Architecture, Proceedings of the International Conference on Computer Design, p.90, October 05--05, 1998.
[12]
Intel Corp. IA--32 Intel® Architecture Software Developer's Manual,Volume 1--3
[13]
AMD Corp. AMD64 Technology AMD64 Architecture Programmer's Manual,Volume 4--5
[14]
AMD Corp. Software Optimization Guide for AMD Athlon" 64 and AMD Opteron" Processors
[15]
Intel Corp. Intel® Pentium® 4 Processor Optimization Reference Manual
[16]
Weiwu Hu, Fuxin Zhang, Zusong Li, Microarchitecture of the Godson-2 Processor, http://www.loongson.cn/newweb/phpcms/uploadfile/article/uploadfile/200709/20070924095420719.rar
[17]
C.Evan Foster III, Harold C.Grossman, An empirical investigation of the Haifa register allocation technique in the GNU C compiler, Southeastcon '92, Proceedings., IEEE 12--15 April 1992, Page(s):776 -- 779 vol.2 Digital Object Identifier 10.1109/SECON.1992.202433.

Cited By

View all
  • (2022)Loner: utilizing the CPU vector datapath to process scalar integer dataProceedings of the 31st ACM SIGPLAN International Conference on Compiler Construction10.1145/3497776.3517767(205-217)Online publication date: 19-Mar-2022
  • (2014)Achieving spilling-friendly register file assignment for highly distributed register filesThe Journal of Supercomputing10.1007/s11227-014-1181-269:3(1342-1362)Online publication date: 1-Sep-2014
  • (2011)Dynamic register promotion of stack variablesProceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization10.5555/2190025.2190050(21-31)Online publication date: 2-Apr-2011
  • Show More Cited By

Index Terms

  1. Exploiting idle register classes for fast spill destination

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ICS '08: Proceedings of the 22nd annual international conference on Supercomputing
    June 2008
    390 pages
    ISBN:9781605581583
    DOI:10.1145/1375527
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 07 June 2008

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. data transfer
    2. spilling cost

    Qualifiers

    • Research-article

    Conference

    ICS08
    Sponsor:
    ICS08: International Conference on Supercomputing
    June 7 - 12, 2008
    Island of Kos, Greece

    Acceptance Rates

    Overall Acceptance Rate 629 of 2,180 submissions, 29%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)3
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 22 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2022)Loner: utilizing the CPU vector datapath to process scalar integer dataProceedings of the 31st ACM SIGPLAN International Conference on Compiler Construction10.1145/3497776.3517767(205-217)Online publication date: 19-Mar-2022
    • (2014)Achieving spilling-friendly register file assignment for highly distributed register filesThe Journal of Supercomputing10.1007/s11227-014-1181-269:3(1342-1362)Online publication date: 1-Sep-2014
    • (2011)Dynamic register promotion of stack variablesProceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization10.5555/2190025.2190050(21-31)Online publication date: 2-Apr-2011
    • (2011)Dynamic register promotion of stack variablesInternational Symposium on Code Generation and Optimization (CGO 2011)10.1109/CGO.2011.5764671(21-31)Online publication date: Apr-2011

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media