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 |