Proceedings 2000 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00622) (2000)
Oct. 15, 2000 to Oct. 19, 2000
Uma Mahadevan , Hewlett-Packard Company
Kevin Nomura , Hewlett-Packard Company
Roy Dz-ching Ju , Hewlett-Packard Company
Rick Hank , Hewlett-Packard Company
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.
R. D. Ju, U. Mahadevan, K. Nomura and R. Hank, "Applying Data Speculation in Modulo Scheduled Loops," Proceedings 2000 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00622)(PACT), Philadelphia, Pennsylvania, 2000, pp. 169.