The superblock: an effective technique for VLIW and superscalar compilation
The Journal of Supercomputing - Special issue on instruction-level parallelism
An Optimal Instruction Scheduler for Superscalar Processor
IEEE Transactions on Parallel and Distributed Systems
Profile-driven instruction level parallel scheduling with application to super blocks
Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture
Speculative hedge: regulating compile-time speculation against profile variations
Proceedings of the 29th annual ACM/IEEE international symposium on Microarchitecture
Advanced compiler design and implementation
Advanced compiler design and implementation
Balance scheduling: weighting branch tradeoffs in superblocks
Proceedings of the 32nd annual ACM/IEEE international symposium on Microarchitecture
Scheduling time-constrained instructions on pipelined processors
ACM Transactions on Programming Languages and Systems (TOPLAS)
Computer architecture: a quantitative approach
Computer architecture: a quantitative approach
Treegion Scheduling for Highly Parallel Processors
Euro-Par '97 Proceedings of the Third International Euro-Par Conference on Parallel Processing
Resource Spackling: A Framework for Integrating Register Allocation in Local and Global Schedulers
PACT '94 Proceedings of the IFIP WG10.3 Working Conference on Parallel Architectures and Compilation Techniques
Optimal Superblock Scheduling Using Enumeration
Proceedings of the 37th annual IEEE/ACM International Symposium on Microarchitecture
Data-Dependency Graph Transformations for Instruction Scheduling
Journal of Scheduling
ACM Transactions on Embedded Computing Systems (TECS)
Hi-index | 0.00 |
The superblock is a scheduling region which exposes instruction level parallelism beyond the basic block through speculative execution of instructions. In gen- eral, scheduling superblocks is an NP-Hard optimiza- tion 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 superblock scheduling. The graph transformations prune redun- dant and inferior schedules from the problem solution space. Heuristically scheduling the transformed data- dependency graphs yields significant reduction in ex- pected execution time for hard superblocks. Also, enu- meratively 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 superblocks 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 enu- merative superblock scheduling.