Transactifying Applications using an Open Compiler Framework
Publikation: Beitrag zu Konferenzen › Paper › Beigetragen › Begutachtung
Beitragende
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
Originalsprache | Englisch |
---|---|
Seitenumfang | 8 |
Publikationsstatus | Veröffentlicht - 2007 |
Peer-Review-Status | Ja |
Konferenz
Titel | TRANSACT '07: the 2nd ACM SIGPLAN Workshop on Transactional Computing, 2007. |
---|---|
Kurztitel | TRANSACT '07 |
Veranstaltungsnummer | |
Dauer | 16 August 2007 |
Bekanntheitsgrad | Internationale Veranstaltung |
Ort | |
Stadt | Portland |
Land | USA/Vereinigte Staaten |