Applying Data Speculation in Modulo Scheduled Loops

  • Authors:
  • Uma Mahadevan;Kevin Nomura;Roy Dz-ching Ju;Rick Hank

  • Affiliations:
  • -;-;-;-

  • Venue:
  • PACT '00 Proceedings of the 2000 International Conference on Parallel Architectures and Compilation Techniques
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

Modulo scheduling is an effective instruction scheduling technique for exploiting ILP in modern microprocessors with wide machine resources. As with any instruction scheduling technique, its effectiveness is constrained by both the source program dependencies as deduced by the compiler and the resources available in the target machine. Data speculation is a technique for eliminating memory dependencies in the instruction dependence graph with demonstrated benefits in acyclic scheduling. Therefore, by applying data speculation in modulo scheduled loops we are able to achieve higher degrees of instruction level parallelism. This paper addresses a number of key issues in applying data speculation to modulo scheduling: effectively identifying the additional instructions required to recover from mis-speculation, ensuring full recoverability of instructions speculated across multiple stages and possibly executed speculatively multiple times on-the-fly, and coloring rotating registers for speculated instructions and instructions in recovery blocks. We implemented the framework proposed in this paper and demonstrated its effectiveness through experimental results.