In
computer science,
instruction scheduling is a
compiler optimization used to improve instruction-level parallelism, which improves performance on machines with
instruction pipelines. Put more simply, without changing the meaning of the code, it tries to
- Avoid pipeline stalls by rearranging the order of instructions.
- Avoid illegal or semantically ambiguous operations (typically involving subtle instruction pipeline timing issues or non-interlocked resources.)