  Memory-management support for lock-free data structures is well known to be a
tough problem. Recent work has successfully reduced the overhead of such
schemes. However, applying memory-management support to a data structure
remains complex and, in many cases, requires redesigning the data structure. In
this paper, we present the first lock-free memory-management scheme that is
applicable to general (arbitrary) lock-free data structures and that can be
applied automatically via a compiler plug-in. In addition to the simplicity of
incorporating to data structures, this scheme provides low overhead and does
not rely on the lock freedom of any OS services.
