summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSwaroop Sridhar <Swaroop.Sridhar@microsoft.com>2015-05-21 00:50:10 +0000
committerSwaroop Sridhar <Swaroop.Sridhar@microsoft.com>2015-05-21 00:50:10 +0000
commit0141c66026fec44ced525cc032d3e67af5294484 (patch)
tree835aaaccfbcaba4e0b82b47db2d631c1664920b1
parent549a742ba470e58ff667c29675e367e0019dd575 (diff)
Document the CoreCLR GC Strategy
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
-rw-r--r--docs/GarbageCollection.rst23
1 files changed, 23 insertions, 0 deletions
diff --git a/docs/GarbageCollection.rst b/docs/GarbageCollection.rst
index a1557fcdb09..56b4b9f8f95 100644
--- a/docs/GarbageCollection.rst
+++ b/docs/GarbageCollection.rst
@@ -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
====================