Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/605397.605419acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
Article

Dynamic dead-instruction detection and elimination

Published: 01 October 2002 Publication History
  • Get Citation Alerts
  • Abstract

    We observe a non-negligible fraction--3 to 16% in our benchmarks--of dynamically dead instructions, dynamic instruction instances that generate unused results. The majority of these instructions arise from static instructions that also produce useful results. We find that compiler optimization (specifically instruction scheduling) creates a significant portion of these partially dead static instructions. We show that most of the dynamically instructions arise from a small set of static instructions that produce dead values most of the time.We leverage this locality by proposing a dead instruction predictor and presenting a scheme to avoid the execution of predicted-dead instructions. Our predictor achieves an accuracy of 93% while identifying over 91% of the dead instructions using less than 5 KB of state. We achieve such high accuracies by leveraging future control flow information (i.e., branch predictions) to distinguish between useless and useful instances of the same static instruction.We then present a mechanism to avoid the register allocation, instruction scheduling, and execution of predicted dead instructions. We measure reductions in resource utilization averaging over 5% and sometimes exceeding 10%, covering physical register management (allocation and freeing), register file read and write traffic, and data cache accesses. Performance improves by an average of 3.6% on an architecture exhibiting resource contention. Additionally, our scheme frees future compilers from the need to consider the costs of dead instructions, enabling more aggressive code motion and optimization. Simultaneously, it mitigates the need for good path profiling information in making inter-block code motion decisions.

    References

    [1]
    D. Burger and T. Austin. The SimpleScalar tool set, version 2.0. Technical Report CS-TR-97-1342, University of Wisconsin-Madison, June 1997.
    [2]
    P. Chang, N. Warter, S. Mahlke, W. Chen, and W. Hwu. Three architectural models for compiler-controlled speculative execution. IEEE Trans. on Computers, 44(3), March 1995. pp. 481-94.
    [3]
    W. Chen, S. Mahlke, N. Warter, S. Anik, and W. Hwu. Profile-assisted instruction scheduling. Intl. Journal for Parallel Programming, 22(2), April 1994. pp. 151-81.
    [4]
    K. Cooper, M. Hall, and K. Kennedy. Procedure cloning. In Proceedings of the IEEE 1992 Intl. Conference on Computer Languages, April 1992. pp. 96-105.
    [5]
    R. Gupta, D. Berson, and J. Fang. Resource-sensitive profile-directed data flow analysis for code optimization. In Proceedings of the 30th Annual Intl. Symp. on Microarchitecture, December 1997. pp. 358-68.
    [6]
    E. Jacobsen, E. Rotenberg, and J. E. Smith. Assigning confidence to conditional branch predictions. In Proceedings of the 29th Intl. Symp. on Microarchitecture, December 1996. pp. 142-52.
    [7]
    A. Klaiber. The technology behind Crusoe™ processors. Transmeta Corporation White Paper, January 2000.
    [8]
    J. Knoop, O. Ruthing, and B. Steffen. Partial dead code elimination. In Proceedings of the ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation, June 1994. pp. 147-58.
    [9]
    K. Lepak and M. Lipasti. On the value locality of store instructions. In Proceedings of the 27th Annual Intl. Symp. on Computer Architecture, June 2000. pp. 182-91.
    [10]
    M. Martin, A. Roth, and C. Fischer. Exploiting dead value information. In Proceedings of the 30th Annual Intl. Symp. on Microarchitecture, December 1997. pp. 125-35.
    [11]
    E. Rotenberg. Exploiting large ineffectual instruction sequences. Technical Report, North Carolina State University, November 1999.
    [12]
    K. C. Yeager. The MIPS R10000 superscalar microprocessor. IEEE Micro, 16(2), April 1996. pp. 28-41.
    [13]
    A. Yoaz, R. Ronen, R. Chappell, and Y. Almog. Silence is golden? Presented at the 7th Annual Symp. on High Performance Computer Architecture, January 2001.

    Cited By

    View all
    • (2023)R2D2: Removing ReDunDancy Utilizing Linearity of Address Generation in GPUsProceedings of the 50th Annual International Symposium on Computer Architecture10.1145/3579371.3589039(1-14)Online publication date: 17-Jun-2023
    • (2020)Dimensionality-Aware Redundant SIMT Instruction EliminationProceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3373376.3378520(1327-1340)Online publication date: 13-Mar-2020
    • (2019)Redundant loadsProceedings of the 41st International Conference on Software Engineering10.1109/ICSE.2019.00103(982-993)Online publication date: 25-May-2019
    • Show More Cited By
    1. Dynamic dead-instruction detection and elimination

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      ASPLOS X: Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
      October 2002
      318 pages
      ISBN:1581135742
      DOI:10.1145/605397
      • cover image ACM SIGARCH Computer Architecture News
        ACM SIGARCH Computer Architecture News  Volume 30, Issue 5
        Special Issue: Proceedings of the 10th annual conference on Architectural Support for Programming Languages and Operating Systems
        December 2002
        296 pages
        ISSN:0163-5964
        DOI:10.1145/635506
        Issue’s Table of Contents
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 37, Issue 10
        October 2002
        296 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/605432
        Issue’s Table of Contents
      • cover image ACM SIGOPS Operating Systems Review
        ACM SIGOPS Operating Systems Review  Volume 36, Issue 5
        December 2002
        296 pages
        ISSN:0163-5980
        DOI:10.1145/635508
        Issue’s Table of Contents
      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: 01 October 2002

      Permissions

      Request permissions for this article.

      Check for updates

      Qualifiers

      • Article

      Conference

      ASPLOS02

      Acceptance Rates

      ASPLOS X Paper Acceptance Rate 24 of 175 submissions, 14%;
      Overall Acceptance Rate 535 of 2,713 submissions, 20%

      Upcoming Conference

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)28
      • Downloads (Last 6 weeks)5
      Reflects downloads up to 27 Jul 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2023)R2D2: Removing ReDunDancy Utilizing Linearity of Address Generation in GPUsProceedings of the 50th Annual International Symposium on Computer Architecture10.1145/3579371.3589039(1-14)Online publication date: 17-Jun-2023
      • (2020)Dimensionality-Aware Redundant SIMT Instruction EliminationProceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3373376.3378520(1327-1340)Online publication date: 13-Mar-2020
      • (2019)Redundant loadsProceedings of the 41st International Conference on Software Engineering10.1109/ICSE.2019.00103(982-993)Online publication date: 25-May-2019
      • (2018)Static Prediction of Silent StoresACM Transactions on Architecture and Code Optimization10.1145/328084815:4(1-26)Online publication date: 16-Nov-2018
      • (2018)Programming guidelines for improving software resiliency against soft-errors without performance overheadComputing10.1007/s00607-018-0592-y100:9(971-1003)Online publication date: 1-Sep-2018
      • (2017)REDSPYACM SIGARCH Computer Architecture News10.1145/3093337.303772945:1(47-61)Online publication date: 4-Apr-2017
      • (2017)REDSPYACM SIGPLAN Notices10.1145/3093336.303772952:4(47-61)Online publication date: 4-Apr-2017
      • (2017)REDSPYACM SIGOPS Operating Systems Review10.1145/3093315.303772951:2(47-61)Online publication date: 4-Apr-2017
      • (2017)REDSPYProceedings of the Twenty-Second International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3037697.3037729(47-61)Online publication date: 4-Apr-2017
      • (2014)Cross-layer early reliability evaluation: Challenges and promises2014 IEEE 20th International On-Line Testing Symposium (IOLTS)10.1109/IOLTS.2014.6873704(228-233)Online publication date: Jul-2014
      • Show More Cited By

      View Options

      Get Access

      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