Title :
Wish Branches: Enabling Adaptive and Aggressive Predicated Execution
Author :
Kim, Hyesoon ; Mutlu, Onur ; Patt, Yale N. ; Stark, Jared
Author_Institution :
Texas Univ., Austin, TX
Abstract :
We propose a mechanism in which the compiler generates code that can be executed either as predicated code or nonpredicated code. The compiler-generated code is the same as predicated code, except the predicated conditional branches are not removed - they are left intact in the program code. These conditional branches are called wish branches. The goal of wish branches is to use predicated execution for hard-to-predict dynamic branches, and branch prediction for easy-to-predict dynamic branches, thereby obtaining the best of both worlds. Wish loops, one class of wish branches, use predication to reduce the misprediction penalty for hard-to-predict backward (loop) branches
Keywords :
program compilers; program control structures; adaptive predicated execution; aggressive predicated execution; branch prediction; compiler-generated code; easy-to-predict dynamic branches; hard-to-predict dynamic branches; nonpredicated code; predicated code; wish branches; wish loops; Adaptive control; Added delay; Bandwidth; Decoding; Delay effects; Hardware; Performance analysis; Performance loss; Programmable control; Runtime; Wish branches; branch prediction; predicated execution; wish loops;
Journal_Title :
Micro, IEEE