Towards the Analysis of Transactional Software

Nicholas Kidd, Kevin Moore, Thomas Reps, and David Wood
University of Wisconsin

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.)