Patent ID: 8799882
Filing Date: 2014-08-05
Classification: G06F

Abstract:
1. A method of compiling a program, the program including software transactional memory blocks and the method comprising: by a computer, optimizing the program to create an optimized program containing software transactional memory instructions; wherein optimizing the program comprises: wherein performing optimizations comprises performing a common subexpression elimination procedure which is modified to operate on decomposed software transactional memory instructions such that a decomposed software transactional memory instruction to open an object for read, that comprises a parameter that references the object, is eliminated which takes place after a decomposed software transactional memory instruction to open the object for update within a same transaction; wherein the optimizations are performed within software transactional memory constraints, the software transactional memory constraints comprising data dependencies which are introduced into the decomposed software transactional memory instructions; wherein the data dependencies enforce a call order based on output variables for at least some of the decomposed software transactional memory instructions being input variables for subsequent decomposed software transactional memory instructions; and compiling the optimized program.