×

Compiler support for optimizing decomposed software transactional memory operations

  • US 8,799,882 B2
  • Filed: 03/23/2006
  • Issued: 08/05/2014
  • Est. Priority Date: 12/07/2005
  • Status: Active Grant
First Claim
Patent Images

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;

    (a) inserting one or more word-based direct-access software transactional memory instructions at the software transactional memory blocks;

    (b) replacing the one or more word-based direct-access software transactional memory instructions with decomposed software transactional memory instructions in the program at the software transactional memory blocks;

    and(c) performing optimizations on the program to create the optimized program, such that at least some of the optimizations are configured to operate specifically on the decomposed software transactional memory instructions;

    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.

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