1. A method for deferring execution of instructions with unresolved data dependencies as they are issued for execution in program order, comprising: issuing instructions for execution in program order during a normal execution mode; and upon encountering an unresolved data dependency during execution of an instruction, generating a checkpoint that can subsequently be used to return execution of the program to the point of the instruction, deferring execution of the instruction, and executing subsequent instructions in an execute-ahead mode, wherein instructions that cannot be executed because of an unresolved data dependency are deferred, and wherein other non-deferred instructions are executed in program order.