X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FGarbageCollection.rst;h=56b4b9f8f957d8bc4dc0f46946b9223e429d6eee;hb=8d539b551932f5794b612510f5037283d23e7bbc;hp=5d1588a7fe41e45efa4e62de2c5ecb5f01888926;hpb=651713e05ea095633324e1fec1df1a1270176c30;p=oota-llvm.git diff --git a/docs/GarbageCollection.rst b/docs/GarbageCollection.rst index 5d1588a7fe4..56b4b9f8f95 100644 --- a/docs/GarbageCollection.rst +++ b/docs/GarbageCollection.rst @@ -386,6 +386,8 @@ greater performance impact since pointer reads are more frequent than writes. .. _plugin: +.. _builtin-gc-strategies: + Built In GC Strategies ====================== @@ -492,6 +494,7 @@ a ``gcroot`` strategy. As there names imply, the binary format produced is intended to model that used by the Erlang and OCaml compilers respectively. +.. _statepoint_example_gc: The Statepoint Example GC ------------------------- @@ -515,6 +518,28 @@ The stack map format generated by this GC strategy can be found in the `. This format is intended to be the standard format supported by LLVM going forward. +The CoreCLR GC +------------------------- + +.. code-block:: c++ + + F.setGC("coreclr"); + +This GC leverages the ``gc.statepoint`` mechanism to support the +`CoreCLR `__ runtime. + +Support for this GC strategy is a work in progress. This strategy will +differ from +:ref:`statepoint-example GC` strategy in +certain aspects like: + +* Base-pointers of interior pointers are not explicitly + tracked and reported. + +* A different format is used for encoding stack maps. + +* Safe-point polls are only needed before loop-back edges + and before tail-calls (not needed at function-entry). Custom GC Strategies ====================