Provided by: Dresden University of Technology
Date Added: Feb 2008
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, the authors 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.