• DocumentCode
    939280
  • Title

    Dynamic Predication of Indirect Jumps

  • Author

    Joao, J.A. ; Mutlu, O. ; Hyesoon Kim ; Patt, Y.N.

  • Author_Institution
    Univ. of Texas at Austin, Austin
  • Volume
    6
  • Issue
    2
  • fYear
    2007
  • Firstpage
    25
  • Lastpage
    28
  • Abstract
    Indirect jumps are used to implement increasingly-common programming language constructs such as virtual function calls, switch-case statements, jump tables, and interface calls. Unfortunately, the prediction accuracy of indirect jumps has remained low because many indirect jumps have multiple targets that are difficult to predict even with specialized hardware. This paper proposes a new way of handling hard-to-predict indirect jumps: dynamically predicating them. The compiler identifies indirect jumps that are suitable for predication along with their control-flow merge (CFM) points. The microarchitecture predicates the instructions between different targets of the jump and its CFM point if the jump turns out to be hard-to-predict at run time. We describe the new indirect jump predication architecture, provide code examples showing why it could reduce the performance impact of jumps, derive an analytical cost-benefit model for deciding which jumps and targets to predicate, and present preliminary evaluation results.
  • Keywords
    parallel architectures; program compilers; program control structures; system monitoring; control-flow merge point; hard-to-predict indirect jump handling; interface call; jump table; microarchitecture dynamic predication; program compiler; programming language construct; switch-case statement; virtual function call; Accuracy; Analytical models; Computer languages; Hardware; Instruction sets; Microarchitecture; Object oriented modeling; Performance analysis; Pipelines; Switches; Computer Systems Organization; Instruction fetch; Micro-architecture implementation considerations; Pipeline processors; Processor Architectures; Single Data Stream Architectures; Superscalar; and statically-scheduled implementation; dynamically-scheduled; dynamically-scheduled and statically-scheduled implementation;
  • fLanguage
    English
  • Journal_Title
    Computer Architecture Letters
  • Publisher
    ieee
  • ISSN
    1556-6056
  • Type

    jour

  • DOI
    10.1109/L-CA.2007.7
  • Filename
    4357971