Changed option name from inline-threshold to basic-inline-threshold because
[oota-llvm.git] / docs / AliasAnalysis.html
index 1c4ca9965f3d67067bec8614a4eab98bc67685ef..97a813344d894dea99fa9489ee2a02136ee82f96 100644 (file)
@@ -191,16 +191,20 @@ and returns MustAlias, MayAlias, or NoAlias as appropriate.
 </div>
 
 <div class="doc_text">
-
-<p>An Alias Analysis implementation can return one of three responses:
-MustAlias, MayAlias, and NoAlias.  The No and May alias results are obvious: if
-the two pointers can never equal each other, return NoAlias, if they might,
-return MayAlias.</p>
-
-<p>The MustAlias response is trickier though.  In LLVM, the Must Alias response
-may only be returned if the two memory objects are guaranteed to always start at
-exactly the same location.  If two memory objects overlap, but do not start at
-the same location, return MayAlias.</p>
+<p>The NoAlias response is used when the two pointers refer to distinct objects,
+regardless of whether the pointers compare equal.  For example, freed pointers
+don't alias any pointers that were allocated afterwards.  As a degenerate case,
+pointers returned by malloc(0) have no bytes for an object, and are considered
+NoAlias even when malloc returns the same pointer.  The same rule applies to
+NULL pointers.</p>
+
+<p>The MayAlias response is used whenever the two pointers might refer to the
+same object.  If the two memory objects overlap, but do not start at the same
+location, return MayAlias.</p>
+
+<p>The MustAlias response may only be returned if the two memory objects are
+guaranteed to always start at exactly the same location. A MustAlias response
+implies that the pointers compare equal.</p>
 
 </div>