𝔖 Bobbio Scriptorium
✦   LIBER   ✦

Using integer linear programming for instruction scheduling and register allocation in multi-issue processors

✍ Scribed by Chia-Ming Chang; Chien-Ming Chen; Chung-Ta King


Publisher
Elsevier Science
Year
1997
Tongue
English
Weight
752 KB
Volume
34
Category
Article
ISSN
0898-1221

No coin nor oath required. For personal study only.

✦ Synopsis


Instruction scheduling and register allocation are two very important optimizations in modern compilers for advanced processors. These two optimizations must be performed simultaneously in order to maximize the instruction-level parallelism and to fully utilize the registers [1]. In this paper, we solve register allocation and instruction scheduling simultaneously using integer linear programming (ILP). We have successfully worked out the ILP formulations for the problem with and without register spilling. Two kinds of optimizations are considered:

(1) fix the number of free registers and then solve the minimum number of cycles to execute the instructions, or (2) fix the maximum execution cycles for the instructions and solve the minimum number of registers needed. Besides being theoretically interesting, our solution serves as a reference point for other heuristic solutions. The formulations are also applicable to high-level synthesis of ASICs and designs for embedded processors. In these application domains, the code quality is more important than the compilation time.