Feature/capture analysis

The LICM (lightweight identification of captured memory) is a new lightweight
runtime technique to identify captured memory, for which no STM barriers are
needed.  Captured memory corresponds to memory allocated inside a transaction
that cannot escape (i.e., is captured by) its allocating transaction.
This technique requires two new features that were not available in the Deuce
STM: 1) enhance the object model with transactional metadata; 2) additional
filtering to the standard behavior of the STM barriers.
These two features are included without any change or extension to the Deuce API
and guarantying retro-compatibility with existing STMs implementations for
Deuce. Moreover, it is possible to enhance any existing STM with the LICM
without requiring either its recompilation or any modiﬁcation to its
source-code.

This work was published in the PPoPP13 with the poster “Runtime elision of
transactional barriers for captured memory”, by F. Miguel Carvalho and João 
Cachopo.