Sciweavers

IJAIT
2008

Optimal Basic Block Instruction Scheduling for Multiple-Issue Processors Using Constraint Programming

13 years 4 months ago
Optimal Basic Block Instruction Scheduling for Multiple-Issue Processors Using Constraint Programming
Instruction scheduling is one of the most important steps for improving the performance of object code produced by a compiler. A fundamental problem that arises in instruction scheduling is to find a minimum length schedule for a basic block--a straight-line sequence of code with a single entry point and a single exit point--subject to precedence, latency, and resource constraints. Solving the problem exactly is NPcomplete, and heuristic approaches are currently used in most compilers. In contrast, we present a scheduler that finds provably optimal schedules for basic blocks using techniques from constraint programming. In developing our optimal scheduler, the keys to scaling up to large, real problems were improvements to the constraint model and to the constraint propagation phases. We experimentally evaluated our optimal scheduler on the SPEC 2000 integer and floating point benchmarks. On this benchmark suite, the optimal scheduler was very robust and scaled to the largest basic bl...
Abid M. Malik, Jim McInnes, Peter van Beek
Added 12 Dec 2010
Updated 12 Dec 2010
Type Journal
Year 2008
Where IJAIT
Authors Abid M. Malik, Jim McInnes, Peter van Beek
Comments (0)