1. A method comprising: maintaining a plurality of virtual identifiers for each of a plurality of physical registers, each virtual identifier having an associated version number and each physical register associated with an available version counter; allocating one of said virtual identifiers to a destination register of an instruction in a processor pipeline; and after the instruction has executed and produced a result, determining whether the execution of the instruction may write the result to a physical register of the plurality of physical registers of a processor based on which version of a plurality of versions of virtual identifiers associated with the physical register is allocated to the destination register.