Compiler support for optimizing decomposed software transactional memory operations
AssigneeMicrosoft Corporation
InventorsDavid Tarditi, Timothy Harris, Mark Plesko, Avraham Shinnar
Life of this patent
Estimating the term…
Loading patent…
AssigneeMicrosoft Corporation
InventorsDavid Tarditi, Timothy Harris, Mark Plesko, Avraham Shinnar
Estimating the term…
A software transactional memory system is described which utilizes decomposed software transactional memory instructions as well as runtime optimizations to achieve efficient performance. The decomposed instructions allow a compiler with knowledge of the instruction semantics to perform optimizations which would be unavailable on traditional software transactional memory systems. Additionally, high-level software transactional memory optimizations are performed such as code movement around procedure calls, addition of operations to provide strong atomicity, removal of unnecessary read-to-update upgrades, and removal of operations for newly-allocated objects. During execution, multi-use header words for objects are extended to provide for per-object housekeeping, as well as fast snapshots which illustrate changes to objects. Additionally, entries to software transactional memory logs are filtered using an associative table during execution, preventing needless writes to the logs. Finally a garbage collector with knowledge of the software transactional memory system compacts software transactional memory logs during garbage collection.
A method of compiling a program, the program including software transactional memory blocks and the method comprising:
A compiler system for compiling a program containing software transactional memory blocks, the system comprising:
One or more computer-readable media containing instructions which, when executed by a computer, cause the computer to perform a method for optimizing a program comprising software transactional memory instructions, the method comprising:
Dependencies are inferred from the claim text.