1. A method of dynamic instruction scheduling, the method comprising: identifying within a block of program code to be scheduled a primary instruction pattern having at least one corresponding alternative instruction pattern; associating a head instruction of the primary instruction pattern to a head instruction of each of the at least one corresponding alternative instruction pattern; adding the head instruction of the primary instruction pattern and the head instructions of each of the at least one corresponding alternative instruction pattern to an available instruction list; and selecting one of the head instructions of the primary instruction pattern or at least one corresponding alternative instruction pattern for scheduling.