@MISC{Havaki97treegionscheduling, author = {William Andrew Havaki and Jr.}, title = {TREEGION SCHEDULING FOR VLIW PROCESSORS}, year = {1997} }
Share
OpenURL
Abstract
The instruction scheduling phase of compilation is an important determinant of VLIW program performance. One scheduling framework divides a program into re-gions of code that tend to execute together, and then constructs schedules for each region. Several regions suggested in the past, such as traces and superblocks, are linear, and instruction scheduling for them works only on a single path of execution. A new tree-shaped region, called a treegion, encompasses a decision tree section of code. Treegion scheduling therefore produces schedules where several independent execution paths are processed together. Treegion formation is a profile-independent process, making treegions relevant regardless of varying program behavior. Various treegion scheduling heuristics, some of which utilize profile information, are examined and compared with scheduling for basic blocks and for "simple linear regions". Next, tail duplication is applied to the treegion formation process in order to expand the average treegion size and expose more instruction level parallelism. Treegion sched-uling using tail duplication is shown to lead to better performance than superblock scheduling. By removing redundant ops from the schedule using the properties of dominator parallelism, this performance margin increases further. Experiments show that for typical integer and oating-point code, treegion scheduling is an effective means of producing high-performance schedules for VLIW processors.