-<p>As with <tt>llvm.gcwrite</tt>, a target collector might not require the use
-of this intrinsic.</p>
-
-</div>
-
-<!-- *********************************************************************** -->
-<div class="doc_section">
- <a name="runtime">Recommended runtime interface</a>
-</div>
-<!-- *********************************************************************** -->
-
-<div class="doc_text">
-
-<p>LLVM specifies the following recommended runtime interface to the garbage
-collection at runtime. A program should use these interfaces to accomplish the
-tasks not supported by the intrinsics.</p>
-
-<p>Unlike the intrinsics, which are integral to LLVM's code generator, there is
-nothing unique about these interfaces; a front-end compiler and runtime are free
-to agree to a different specification.</p>
-
-<p class="doc_warning">Note: This interface is a work in progress.</p>
-
-</div>
-
-<!-- ======================================================================= -->
-<div class="doc_subsection">
- <a name="initialize">Garbage collector startup and initialization</a>
-</div>
-
-<div class="doc_text">
-
-<div class="doc_code"><tt>
- void llvm_gc_initialize(unsigned InitialHeapSize);
-</tt></div>
-
-<p>
-The <tt>llvm_gc_initialize</tt> function should be called once before any other
-garbage collection functions are called. This gives the garbage collector the
-chance to initialize itself and allocate the heap. The initial heap size to
-allocate should be specified as an argument.
-</p>
-
-</div>
-
-<!-- ======================================================================= -->
-<div class="doc_subsection">
- <a name="allocate">Allocating memory from the GC</a>
-</div>
-
-<div class="doc_text">
-
-<div class="doc_code"><tt>
- void *llvm_gc_allocate(unsigned Size);
-</tt></div>
-
-<p>The <tt>llvm_gc_allocate</tt> function is a global function defined by the
-garbage collector implementation to allocate memory. It returns a
-zeroed-out block of memory of the specified size, sufficiently aligned to store
-any object.</p>
-
-</div>
-
-<!-- ======================================================================= -->
-<div class="doc_subsection">
- <a name="explicit">Explicit invocation of the garbage collector</a>
-</div>
-
-<div class="doc_text">
-
-<div class="doc_code"><tt>
- void llvm_gc_collect();
-</tt></div>
-
-<p>
-The <tt>llvm_gc_collect</tt> function is exported by the garbage collector
-implementations to provide a full collection, even when the heap is not
-exhausted. This can be used by end-user code as a hint, and may be ignored by
-the garbage collector.
-</p>
-
-</div>
-
-<!-- ======================================================================= -->
-<div class="doc_subsection">
- <a name="traceroots">Tracing GC pointers from the program stack</a>
-</div>
-
-<div class="doc_text">
- <div class="doc_code"><tt>
- void llvm_cg_walk_gcroots(void (*FP)(void **Root, void *Meta));
- </tt></div>
-
-<p>
-The <tt>llvm_cg_walk_gcroots</tt> function is a function provided by the code
-generator that iterates through all of the GC roots on the stack, calling the
-specified function pointer with each record. For each GC root, the address of
-the pointer and the meta-data (from the <a
-href="#roots"><tt>llvm.gcroot</tt></a> intrinsic) are provided.
-</p>