1. A method of executing a set of one or more instructions, including: determining whether speculatively executing the instructions is advised based at least in part on dynamic information associated with synchronization data, wherein the dynamic information is based at least in part on a previous successful execution of the instructions by a previous thread; and speculatively executing the instructions when it is determined that speculatively executing the instructions is advised.