1. A method of redirecting instructions of a plurality of threads in a processor, comprising: identifying a statically-assigned execution unit assignment for each instruction; issuing said instructions; analyzing the execution unit assignment for the unissued instructions in each thread; determining if the statically assigned execution unit assignments can be optimized by changing the statically assigned assignments; and dynamically steering any of said issued instructions whose execution unit assignments can be optimized to new execution unit assignments that achieve said optimization.