Add a !patsubst operator. Use on string types.
[oota-llvm.git] / docs / GarbageCollection.html
index 1508bcf2231068fc44472d16f6f37a125cafdfb1..b155bb9374675806e81f42dbc51e849e524c41ba 100644 (file)
@@ -118,7 +118,7 @@ conservative garbage collectors (though these seem rare in practice).</p>
 they can suffer from degraded scalar optimization of the program. In particular,
 because the runtime must be able to identify and update all pointers active in
 the program, some optimizations are less effective. In practice, however, the
-locality and performance benefits of using aggressive garbage allocation
+locality and performance benefits of using aggressive garbage collection
 techniques dominates any low-level losses.</p>
 
 <p>This document describes the mechanisms and interfaces provided by LLVM to
@@ -525,15 +525,14 @@ for completeness. In this snippet, <tt>%object</tt> is the object pointer, and
     ;; Compute the derived pointer.
     %derived = getelementptr %object, i32 0, i32 2, i32 %n</pre></blockquote>
 
+<p>LLVM does not enforce this relationship between the object and derived
+pointer (although a <a href="#plugin">plugin</a> might). However, it would be
+an unusual collector that violated it.</p>
+
 <p>The use of these intrinsics is naturally optional if the target GC does
-require the corresponding barrier. If so, the GC plugin will replace the
-intrinsic calls with the corresponding <tt>load</tt> or <tt>store</tt>
-instruction if they are used.</p>
-
-<p>LLVM does not enforce any particular relationship between the object and
-derived pointer (although a <a href="#plugin">plugin</a> might). However, it
-would be unusual that the derived pointer not be a <tt>getelementptr</tt> of the
-object pointer.</p>
+require the corresponding barrier. Such a GC plugin will replace the intrinsic
+calls with the corresponding <tt>load</tt> or <tt>store</tt> instruction if they
+are used.</p>
 
 </div>