Optimal instruction scheduling using integer programming

Citation
K. Wilken et al., Optimal instruction scheduling using integer programming, ACM SIGPL N, 35(5), 2000, pp. 121-133
Citations number
24
Categorie Soggetti
Computer Science & Engineering
Journal title
ACM SIGPLAN NOTICES
ISSN journal
15232867 → ACNP
Volume
35
Issue
5
Year of publication
2000
Pages
121 - 133
Database
ISI
SICI code
1523-2867(200005)35:5<121:OISUIP>2.0.ZU;2-Q
Abstract
This paper presents a new approach to focal instruction scheduling based on integer programming that produces optimal instruction schedules in a reaso nable time, even for very large basic blocks. The new approach first uses a set of graph transformations to simplify the data-dependency graph while p reserving the optimality of the final schedule. The simplified graph result s in a simplified integer program which can be solved much faster. A new in teger-programming formulation is then applied to the simplified graph. Vari ous techniques are used to simplify the formulation, resulting in fewer int eger-program variables, fever integer-program constraints and fewer terms i n some of the remaining constraints, thus reducing integer-program solution time. The new formulation also uses certain adaptively added constraints ( cuts) to reduce solution time. The proposed optimal instruction scheduler i s built within the Gnu Compiler Collection (GCC) and is evaluated experimen tally using the SPEC95 floating point benchmarks. Although optimal scheduli ng for the target processor is considered intractable, all of the benchmark s' basic blocks are optimally scheduled, including blocks with up to 1000 i nstructions, while total compile time increases by only 14%.