|
ABSTRACT
This paper introduces a new efficient instruction scheduling algorithm that can schedule across basic blocks. Scheduling globally, across basic blocks, is done by using an extension of the control flow graph (CFG) that combines both data and control dependence constraints. It organizes control flow into a hierarchy of dags and includes dataflow edges that cross basic blocks. We assume a type of extended CFG called the hierarchical task graph (HTG). Previously, the HTG has been used to describe the functional parallelism of programs at medium or higher levels of parallelism. Here we use the HTG to assist in finding parallelism at the instruction level. The new generation of superscalar RISC chips must keep their pipelines full and maximize multiple issue for maximum performance. This means that scheduling across basic blocks is becoming increasingly important. The HTG data structure simplifies the task of scheduling instructions across basic blocks.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
AHU74
|
|
| |
BWH
|
Buxbaum, M., D. Wallace and P. Hohensee, "A RISC Vectorization Algorithm," to appear.
|
| |
E86
|
|
| |
F81
|
Fisher, J., "Trace Scheduling: A Technique for Global Microcode Compaction," IEEE Transactions on Computers, Vol. C-30, No. 7, July 1981, pp. 478-490.
|
| |
GP90
|
Girkar, M. and C. Polychronopoulos, "A Universal Intermediate Representation for Parallel Programs Based on Control and Data Dependences," Technical Report 1046, Center for Supercomputing Research and Development, Univ. of Illinois at Urbana-Champaign, 1990.
|
| |
GP92
|
|
 |
PS90
|
|
 |
P91
|
|
|