1. A method, comprising: determining, for a target processor having a plurality of thread units, a predicted sequential execution time for a sequence of program instructions; modeling a predicted multithreaded execution time for the sequence of program instructions, wherein said modeling further includes modeling the effect of a concurrent speculative thread on the sequential execution time; and determining if the predicted multithreaded execution time is less than the predicted sequential execution time; and if so, selecting the speculative thread.