Towards the Analysis of Transactional Software
Nicholas Kidd, Kevin Moore, Thomas Reps, and David Wood
The computer-architecture community's recent focus on multi-core
architectures has spurred renewed interest in concurrent-programming
techniques and abstractions. For programmers to take advantage of the
processing power of today's multi-core chips, they need to write
multi-threaded applications. Specifically, the programming-language
community has focused on software transactions. A software transaction
declaratively specifies what program statements should execute
atomically. Our research focuses on the analysis of programs that make
use of software transactions. We present a novel interprocedural
analysis, XRef analysis, that annotates the fields of each record type
in the program with the static transactions in which it is referenced.
We show how the results of XRef analysis can be used to perform
additional analyses. In particular, we present two such analyses, XOrder
and XProtect. XOrder is aimed at software running on a
transactional-memory platform and attempts to find an optimized layout
for a record in memory. XProtect is a safety analysis that warns the
programmer if a shared record is inconsistently protected by a software
transaction.
(Click here to access the paper:
PDF.)
University of Wisconsin