Transactifying Applications using an Open Compiler Framework
Research output: Contribution to conferences › Paper › Contributed › peer-review
Contributors
Abstract
Transactional memory dramatically reduces the complex-
ity of writing concurrent code. Yet, seamless integration of
transactional constructs in application code typically comes
with a significant performance penalty. Recent studies have
shown that compiler support allows producing highly effi-
cient STM-based applications without putting the hassle on
the programmer. So far, STM integration has been partially
implemented in custom, proprietary compiler infrastruc-
tures. In this paper, we propose and evaluate the use of the
LLVM open compiler framework to generate efficient con-
current applications using word-based STM libraries. Since
LLVM uses the GCC compiler suite as front-end, it can pro-
cess code written in C or C++ (with partial support for other
languages). We also present a tool that allows “transactify-
ing” assembly code and can complement LLVM for legacy
code and libraries. Experiments using a lightweight C word-
based STM library show that LLVM integration performs
as well as hand-optimized calls to the STM library and bet-
ter than assembly code instrumentation of the application
code.
ity of writing concurrent code. Yet, seamless integration of
transactional constructs in application code typically comes
with a significant performance penalty. Recent studies have
shown that compiler support allows producing highly effi-
cient STM-based applications without putting the hassle on
the programmer. So far, STM integration has been partially
implemented in custom, proprietary compiler infrastruc-
tures. In this paper, we propose and evaluate the use of the
LLVM open compiler framework to generate efficient con-
current applications using word-based STM libraries. Since
LLVM uses the GCC compiler suite as front-end, it can pro-
cess code written in C or C++ (with partial support for other
languages). We also present a tool that allows “transactify-
ing” assembly code and can complement LLVM for legacy
code and libraries. Experiments using a lightweight C word-
based STM library show that LLVM integration performs
as well as hand-optimized calls to the STM library and bet-
ter than assembly code instrumentation of the application
code.
Details
| Original language | English |
|---|---|
| Number of pages | 8 |
| Publication status | Published - 2007 |
| Peer-reviewed | Yes |
Conference
| Title | TRANSACT '07: the 2nd ACM SIGPLAN Workshop on Transactional Computing, 2007. |
|---|---|
| Abbreviated title | TRANSACT '07 |
| Conference number | |
| Duration | 16 August 2007 |
| Degree of recognition | International event |
| Location | |
| City | Portland |
| Country | United States of America |