Abstract
The super block is a scheduling region which exposes instruction level parallelism beyond the basic block through speculative execution of instructions. In general, scheduling super blocks is an NP-Hard optimization and prior work includes both heuristic (polynomial- time) and optimal (enumerative) scheduling techniques. This paper presents a set of transformations to the data-dependency graph which significantly improves the results of heuristic and enumerative super block scheduling. The graph transformations prune redundant and inferior schedules from the problem solution space. Heuristically scheduling the transformed data- dependency graphs yields significant reduction in expected execution time for hard super blocks. Also, enumeratively scheduling the transformed graphs is faster, and an optimal schedule is found for more problem in- stances within a bounded time. The transformations are applied to super blocks generated with the GNU Compiler Collection (GCC) using the SPEC CPU2000 benchmarks targeted to various processor models. The experimental results confirm that the transformations significantly improve the results for heuristic and enumerative super block scheduling.