The Phase Order of Instruction Scheduling
Instruction scheduling may be done either before or after register allocation or both before and after it. The advantage of doing it before register allocation is that this results in maximum parallelism. The disadvantage of doing it before register allocation is that this can result in the register allocator needing to use a number of registers exceeding those available. This will cause spill/fill code to be introduced which will reduce the performance of the section of code in question.
If the architecture being scheduled has instruction sequences that have potentially illegal combinations (due to a lack of instruction interlocks) the instructions must be scheduled after register allocation. This second scheduling pass will also improve the placement of the spill/fill code.
If scheduling is only done after register allocation then there will be false dependencies introduced by the register allocation that will limit the amount of instruction motion possible by the scheduler.
Read more about this topic: Instruction Scheduling
Famous quotes containing the words phase, order and/or instruction:
“I had let preadolescence creep up on me without paying much attentionand I seriously underestimated this insidious phase of child development. You hear about it, but youre not a true believer until it jumps out at you in the shape of your own, until recently quite companionable child.”
—Susan Ferraro (20th century)
“An absolute can only be given in an intuition, while all the rest has to do with analysis. We call intuition here the sympathy by which one is transported into the interior of an object in order to coincide with what there is unique and consequently inexpressible in it. Analysis, on the contrary, is the operation which reduces the object to elements already known.”
—Henri Bergson (18591941)
“Teaching is the perpetual end and office of all things. Teaching, instruction is the main design that shines through the sky and earth.”
—Ralph Waldo Emerson (18031882)