1. A method comprising: executing an instruction in a processor; determining at retirement of the instruction, a vulnerability level for the instruction corresponding to a soft error likelihood for the instruction; and re-executing the instruction if the vulnerability level is above a threshold.