EFFICIENT INSTRUCTION SCHEDULING USING FINITE-STATE AUTOMATA

Authors
Citation
V. Bala et N. Rubin, EFFICIENT INSTRUCTION SCHEDULING USING FINITE-STATE AUTOMATA, International journal of parallel programming, 25(2), 1997, pp. 53-82
Citations number
15
Categorie Soggetti
Computer Sciences","Computer Science Theory & Methods
ISSN journal
08857458
Volume
25
Issue
2
Year of publication
1997
Pages
53 - 82
Database
ISI
SICI code
0885-7458(1997)25:2<53:EISUFA>2.0.ZU;2-U
Abstract
Modern compilers employ sophisticated instruction scheduling technique s to shorten the number of cycles taken to execute the instruction str eam. In addition to correctness, the instruction scheduler must also e nsure that hardware resources are not oversubscribed in any cycle. For a contemporary processor implementation with multiple pipelines and c omplex resource usage restrictions, this is not an easy task. The comp lexity involved in reasoning about such resource hazards is one of the primary factors that constrain the instruction scheduler from perform ing certain kinds of transformations that can result in improved sched ules. We extend a technique for detecting pipeline resource hazards ba sed on finite state automata, to support the efficient implementation of such transformations that are essential for aggressive instruction scheduling beyond basic blocks. Although similar code transformations can be supported by other schemes such as reservation tables, our sche me is superior in terms of space and time. A global instruction schedu ler using these techniques was implemented in the KSR compiler.