[LLVMdev] open source multithreaded garbage collector suitable for LLVM applications?
viridia at gmail.com
Sat May 2 01:05:35 PDT 2009
Chris Lattner wrote:
> On May 1, 2009, at 1:27 PM, Basile STARYNKEVITCH wrote:
>> Hello All
>> Does any know about some opensource multithread-compatible (or
>> concurrent) garbage collector library, if possible suitable for LLVM?
> In fact, yes!
Note that this is still a work in progress, and not quite ready for use
in real programs. But yes, the goal is to create a concurrent garbage
collector (or actually, several different collectors) for LLVM projects.
The project philosophy is based around the "building blocks" idea that
was discussed earlier in this list. By Using C++ policy-based design,
Scarcity intends to provide essential components for building garbage
collectors. The policy-based approach allows any aspect of the system to
easily be replaced - so for example you can replace all of the threading
primitives with ones that are specific to your runtime environment.
Policies also allow the collector to be adapted to different object
memory layouts without requiring the overhead of virtual method calls.
The ConcurrentCollector class supports both "stop the world" and
"sliding window" collection algorithms via subclassing - it provides a
framework for synchronization between mutator threads and the collector,
and it's up to the subclass to determine exactly what happens at each
sync point. This means that there is room for a lot of different
multithreaded collector algorithms to be implemented within this framework.
Anyway, there is lots to be done still. I have not even begun to work on
the integration with LLVM proper.
More information about the llvm-dev