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)
“Man needs to know but little more than a lobster in order to catch him in his traps.”
—Henry David Thoreau (18171862)
“One year, Id completely lost my bearings trying to follow potty training instruction from a psychiatric expert. I was stuck on step on, which stated without an atom of irony: Before you begin, remove all stubbornness from the child. . . . I knew it only could have been written by someone whose suit coat was still spotless at the end of the day, not someone who had any hands-on experience with an actual two-year-old.”
—Mary Kay Blakely (20th century)