Path Analysis and Renaming for Predicated Instruction Scheduling

  • Authors:
  • Lori Carter;Beth Simon;Brad Calder;Larry Carter;Jeanne Ferrante

  • Affiliations:
  • University of California at San Diego, Computer Science and Engineering Department, San Diego, California 92093-0114. Lcarter@cs.ucsd.edu;University of California at San Diego, Computer Science and Engineering Department, San Diego, California 92093-0114;University of California at San Diego, Computer Science and Engineering Department, San Diego, California 92093-0114;University of California at San Diego, Computer Science and Engineering Department, San Diego, California 92093-0114;University of California at San Diego, Computer Science and Engineering Department, San Diego, California 92093-0114

  • Venue:
  • International Journal of Parallel Programming
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

Increases in instruction level parallelism are needed to exploit the potential parallelism available in future wide issue architectures. Predicated execution is an architectural mechanism that increases instruction level parallelism by removing branches and allowing simultaneous execution of multiple paths of control, only committing instructions from the correct path. In order for the compiler to expose and use such parallelism, traditional compiler data-flow and path analysis needs to be extended to predicated code. In this paper, we motivate the need for renaming and for predicates that reflect path information. We present Predicated Static Single Assignment (PSSA) which uses renaming and introduces Full -Path Predicates to remove false dependences and enable aggressive predicated optimization and instruction scheduling. We demonstrate the usefulness of PSSA for Predicated Speculation and Control Height Reduction. These two predicated code optimizations used during instruction scheduling reduce the dependence length of the critical paths through a predicated region. Our results show that using PSSA to enable speculation and control height reduction reduces execution time from 12 to 68%.