Patent ID: 7802136

Claim:
A method comprising: detecting a first transaction; determining a first storage element associated with the first transaction to be checkpointed by (i) determining the first storage element is a live-in storage element associated with the first transaction and (ii) determining the first storage element is to be checkpointed in response to determining the first storage element is a live-in storage element; inserting a first operation to store an original value to be held in the first storage element to a second storage element; inserting a second operation to restore the original value from the second storage element to the first storage element in response to an abort event in the first transaction determining a live-in operation is to be performed before the first transaction, wherein the result of the live-in operation is to be held in the first live-in storage element; determining the live-in operation is also to be performed in the first transaction and the result of the live-in operation is to be held in a third storage element; and replacing the live-in operation in the first transaction with a third operation to copy the result of the live-in operation to be held in the first live-in storage element to the third storage element in response to determining the live-in operation is to be performed before the first transaction, the live-in operation is also to be performed in the first transaction, and the result of the live-in operation is to be held in a third storage element.