[LLVMdev] Tool support for generation of transactional code
Torvald Riegel
torvald at se.inf.tu-dresden.de
Sun Aug 19 13:22:19 PDT 2007
I would like to announce the availability of compiler support for generation
of transactional code in LLVM IR. Our tool is called Tanger and it is an LLVM
pass. You can download Tanger at: http://tinystm.org
Transactional memory (TM) is viewed by a lot of people to be an important tool
for enabling parallelism in a wide area of applications, and especially for
developers that are not skilled in concurrent programming. It is a lot better
than locking (e.g., w.r.t. composability) and far easier than low-level
concurrent programming.
Tanger transforms an application that uses a minimal application-level
declaration API for memory transactions (calls to hook functions begin() and
commit() to declare transaction boundaries) into an application that contains
proper calls to an STM for all accesses to memory in transactional code
(e.g., load instructions are transformed into calls to stm_load() functions).
You can find a more detailed description in our Transact'07 paper [1]. If you
use Tanger in your work, please cite this paper (or the paper we link to at
the website below).
We are looking forward to any comments, questions, and contributions. There is
large interest in compiler support for transactional memory right now
especially in the TM community and related communities. I suppose that only
relatively few people from these communities have a compiler background, so
we would really like to get support from people that have a compiler
background.
We thank all the LLVM developers and contributors for creating a great
compiler framework.
Torvald
[1] Pascal Felber and Christof Fetzer and Ulrich Müller and Torvald Riegel and
Martin Süsskraut and Heiko Sturzrehm, Transactifying Applications using an
Open Compiler Framework, TRANSACT, 2007
More information about the llvm-dev
mailing list