Transactifying Applications Using an Open Compiler Framework
Pascal Felber, Christof Fetzer, Ulrich Mueller, Torvald Riegel,
Martin Suesskraut, and Heiko Sturzrehm
Abstract:
Transactional memory dramatically reduces the complexity 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 efficient STM-based
applications without putting the hassle on the programmer. So far, STM
integration has been partially implemented in custom, proprietary compiler
infrastructures. In this paper, we propose and evaluate the use of the LLVM
open compiler framework to generate efficient concurrent applications using
word-based STM libraries. Since LLVM uses the GCC compiler suite as front-end,
it can process code written in C or C++ (with partial support for other
languages). We also present a tool that allows ``transactifying'' 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 better than assembly code
instrumentation of the application code.
Bibtex:
@inproceedings { felber2007tanger,
title = {Transactifying Applications using an Open Compiler Framework},
author = {Pascal Felber and Christof Fetzer and Ulrich M\"uller and
Torvald Riegel and Martin S\"u{\ss}kraut and Heiko Sturzrehm },
booktitle = {TRANSACT},
month = {August},
year = {2007},
}
Download: