Making Object-Based STM Practical in Unmanaged Environments
Torvald Riegel and Diogo Becker de Brum
Abstract:
Current transactifying compilers for unmanaged environments (e.g., systems software written
in C/C++) target only word-based software transactional memories (STMs) because the
compiler cannot easily infer whether it is safe to transform a transactional access to a
certain memory location in an object-based way. To use object-based STMs in these
environments, programmers must use explicit calls to the STM or use a restricted language
dialect, both of which are not practical. In this paper, we show how an existing pointer
analysis can be used to let a transactifying compiler for C/C++ use object-based accesses
whenever this is possible and safe, while falling back to word-based accesses otherwise.
Programmers do not need to provide any annotations and do not have to use a restricted
language. Our evaluation also shows that an object-based STM can be significantly faster
than a word-based STM with an otherwise identical design and implementation, even if the
parameters of the latter have been tuned.
Bibtex:
@inproceedings{Riegel2008objbased,
author = {{T}orvald {R}iegel and {B}ecker de {B}rum, {D}iogo},
title = {{M}aking {O}bject-{B}ased {STM} {P}ractical in {U}nmanaged {E}nvironments},
booktitle = {{TRANSACT} 2008},
year = {2008},
}
Download: