Premium
Building a retargetable local instruction scheduler
Author(s) -
Allan Vicki,
Beaty Steven J.,
Su Bogong,
Sweany Philip H.
Publication year - 1998
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/(sici)1097-024x(199803)28:3<249::aid-spe152>3.0.co;2-x
Subject(s) - computer science , instruction scheduling , scheduling (production processes) , parallel computing , software pipelining , fixed priority pre emptive scheduling , distributed computing , two level scheduling , dynamic priority scheduling , schedule , software , computer architecture , rate monotonic scheduling , operating system , operations management , economics
While high‐performance architectures have included some Instruction‐Level Parallelism (ILP) for at least 25 years, recent computer designs have exploited ILP to a significant degree. Although a local scheduler is not sufficient for generation of excellent ILP code, it is necessary as many global scheduling and software pipelining techniques rely on a local scheduler. Global scheduling techniques are well‐documented, yet practical discussions of local schedulers are notable in their absence. This paper strives to remedy that disparity by describing a list scheduling framework and several important practical details that, taken together, allow implementation of an efficient local instruction scheduler that is easily retargetable for ILP architectures. The foundation of our machine‐independent instruction scheduler is a timing model that allows easy retargetability to a wide range of architectures. In addition to describing how a general list‐scheduler can be implemented within the framework of our timing model, experimental results indicate that lookahead scheduling can profoundly improve a scheduler's ability to produce a legal schedule. Further experimental data shows that deciding to schedule a data dependence DAG (DDD) in forward or reverse order depends significantly upon that target architecture, suggesting the possibility of scheduling in each direction and using the best of the two schedules. In contrast, experiments demonstrate little difference in code quality for schedules generated by either instruction‐driven or operation‐driven schedulers. Thus, the inherent flexibility of operation‐driven methods suggests including that approach in a retargetable instruction scheduler. List scheduling is, of course, a heuristic scheduling method. A variety of scheduling heuristics are presented. In addition, the paper describes a method, using a genetic algorithm search, to ‘fine‐tune’ the weights of twenty‐four individual heuristics to form a DDD‐node heuristic tuned to a specific architecture. © 1998 John Wiley & Sons, Ltd.