Document the CoreCLR GC Strategy
authorSwaroop Sridhar <Swaroop.Sridhar@microsoft.com>
Thu, 21 May 2015 00:50:10 +0000 (00:50 +0000)
committerSwaroop Sridhar <Swaroop.Sridhar@microsoft.com>
Thu, 21 May 2015 00:50:10 +0000 (00:50 +0000)
Add notead about the CoreCLR GC Strategy to the
Garbage Collection document.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237869 91177308-0d34-0410-b5e6-96231b3b80d8

docs/GarbageCollection.rst

index a1557fcdb0994f993ac76b3b256f5be013ce85e1..56b4b9f8f957d8bc4dc0f46946b9223e429d6eee 100644 (file)
@@ -494,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
 -------------------------
@@ -517,6 +518,28 @@ The stack map format generated by this GC strategy can be found in the
 <statepoint-stackmap-format>`. 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 <https://github.com/dotnet/coreclr>`__ runtime.
+
+Support for this GC strategy is a work in progress. This strategy will 
+differ from 
+:ref:`statepoint-example GC<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
 ====================