1. A method comprising: detecting a read modify write (RMW) lock instruction, which references a first address location; pushing a lock instruction entry (LIE) associated with the lock instruction onto a lock stack in response to detecting the lock instruction, wherein the LIE includes a lock address referenced by the RMW lock instruction and a lock value to be written to the lock address by the RMW lock instruction; detecting a subsequent lock release instruction; determining if the subsequent lock release instruction corresponds to the lock instruction; determining if a plurality of reads in program order from the lock instruction to a time-out are valid in response to the time-out occurring before determining a subsequent lock release instruction corresponds to the lock instruction; writing the lock value included in the LIE to the lock address included in the LIE in response to determining the execution from the lock instruction to the time-out is valid; and storing a prediction entry in a critical section predictor to represent the lock instruction is to be elided in response to subsequently detecting the lock instruction, if the subsequent lock release instruction corresponds to the lock instruction.