Abstract
Instruction scheduling consists of the rearrangement or transformation of program statements, usually at the intermediate language or assembly code level, in order to reduce possible run-time delays between instructions. Such transformations must preserve data dependency and are subject to other constrains. Highly optimizing compilers employing instruction-scheduling techniques have proven to be effective in improving the performance of pipeline processors. Considerable attention has been given to scheduling code within the scope of basic blocks, i.e., straight-line sections of code. In this paper we present techniques for scheduling beyond basic blocks. This allows a further reduction in run-time delays such as those due, e.g., to branches and loops, enabling the exploiting of pipeline architectures which would not otherwise be possible.
Original language | English |
---|---|
Pages (from-to) | 93-97 |
Number of pages | 5 |
Journal | IBM Journal of Research and Development |
Volume | 34 |
Issue number | 1 |
DOIs | |
State | Published - 1990 |
ASJC Scopus subject areas
- General Computer Science