×

Efficient placement of software transactional memory operations around procedure calls

  • US 8,266,609 B2
  • Filed: 03/23/2006
  • Issued: 09/11/2012
  • Est. Priority Date: 12/07/2005
  • Status: Active Grant
First Claim
Patent Images

1. A method for compiling an efficient program comprising atomic blocks utilizing software transactional memory operations, the method comprising:

  • identifying one or more procedures in the program comprising atomic blocks which comprise one or more software transactional memory operations which are able to be optimized outside of the procedure;

    creating, for each of the one or more procedures, a cloned version of the procedure which allows the calling of the software transactional memory operations which are able to be optimized outside of the cloned version;

    wherein the cloned version relies on the software transactional memory operations which are able to be optimized outside of the procedure being performed before the cloned version of the procedure is called;

    wherein the one or more procedures further comprise arguments and at least one software transactional memory operation that gives a result;

    wherein the creating further comprises creating the cloned version which takes an instance of the result given by the at least one software transactional memory operation of the one or more procedures as an input variable in addition to the arguments of the one or more procedures, and replacing occurrences of the at least one software transactional memory operation with the input variable taken by the cloned version;

    moving the one or more software transactional memory operations which are able to be optimized outside of the one or more procedures to one or more call sites for the one or more procedures;

    replacing calls to each of the one or more procedures with calls to its cloned version; and

    optimizing the program by removing redundancies amongst the moved one or more software transactional memory operations.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×