[llvm] r246041 - [docs][Statepoint] Add definitions for base and derived pointers
Philip Reames via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 26 10:25:36 PDT 2015
Author: reames
Date: Wed Aug 26 12:25:36 2015
New Revision: 246041
URL: http://llvm.org/viewvc/llvm-project?rev=246041&view=rev
Log:
[docs][Statepoint] Add definitions for base and derived pointers
This section will be expanded over the next few days. This is just some initial content.
Modified:
llvm/trunk/docs/Statepoints.rst
Modified: llvm/trunk/docs/Statepoints.rst
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/Statepoints.rst?rev=246041&r1=246040&r2=246041&view=diff
==============================================================================
--- llvm/trunk/docs/Statepoints.rst (original)
+++ llvm/trunk/docs/Statepoints.rst Wed Aug 26 12:25:36 2015
@@ -206,6 +206,23 @@ This example was taken from the tests fo
opt -rewrite-statepoints-for-gc test/Transforms/RewriteStatepointsForGC/basics.ll -S | llc -debug-only=stackmaps
+Base & Derived Pointers
+^^^^^^^^^^^^^^^^^^^^^^^
+
+A base pointer is one which points to the base of an allocation (object). A
+derived pointer is one which is offset from a base pointer by some amount.
+When relocating objects, a garbage collector needs to be able to relocate each
+derived pointer associated with an allocation to the same offset from the new
+address.
+
+Derived pointers fall in to two categories:
+ * "Interior derived pointers" remain within the bounds of the allocation
+ they're associated with. As a result, the base object can be found at
+ runtime provided the bounds of allocations are known to the runtime system.
+ * "Exterior derived pointers" are outside the bounds of the associated object;
+ they may even fall within *another* allocations address range. As a result,
+ there is no way for a garbage collector to determine which allocation they
+ are associated with at runtime and compiler support is needed.
GC Transitions
^^^^^^^^^^^^^^^^^^
More information about the llvm-commits
mailing list