Introduce a new PartialAlias response for AliasAnalysis. For most

AliasAnalysis consumers, PartialAlias will be treated as MayAlias.

For AliasAnalysis chaining, MayAlias says "procede to the next analysis".
PartialAlias will be used to indicate that the query should terminate,
even though it didn't reach MustAlias or NoAlias.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121507 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2010-12-10 19:38:58 +00:00
parent a92bac64cb
commit 4a34cbd2b9
2 changed files with 9 additions and 5 deletions

View File

@ -188,7 +188,8 @@ that the accesses alias.</p>
<div class="doc_text">
<p>The <tt>alias</tt> method is the primary interface used to determine whether
or not two memory objects alias each other. It takes two memory objects as
input and returns MustAlias, MayAlias, or NoAlias as appropriate.</p>
input and returns MustAlias, PartialAlias, MayAlias, or NoAlias as
appropriate.</p>
<p>Like all <tt>AliasAnalysis</tt> interfaces, the <tt>alias</tt> method requires
that either the two pointer values be defined within the same function, or at
@ -215,8 +216,10 @@ and reallocation.</p>
dependencies are ignored.</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>
same object.</p>
<p>The PartialAlias response is used when the two memory objects are known
to be overlapping in some way, but do not start at the same address.</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

View File

@ -150,8 +150,9 @@ public:
///
enum AliasResult {
NoAlias = 0, ///< No dependencies.
MayAlias = 1, ///< Anything goes.
MustAlias = 2 ///< Pointers are equal.
MayAlias, ///< Anything goes.
PartialAlias, ///< Pointers differ, but pointees overlap.
MustAlias ///< Pointers are equal.
};
/// alias - The main low level interface to the alias analysis implementation.