Home | History | Annotate | Download | only in Analysis

Lines Matching defs:Alias

1 //===- BasicAliasAnalysis.cpp - Stateless Alias Analysis Impl -------------===//
11 // Alias Analysis interface that implements identities (two different
12 // globals cannot alias, etc), but does no stateful analysis.
453 /// BasicAliasAnalysis - This is the primary alias analysis implementation.
460 // elements on each alias query. This really wants
475 virtual AliasResult alias(const Location &LocA,
480 AliasResult Alias = aliasCheck(LocA.Ptr, LocA.Size, LocA.TBAATag,
483 return Alias;
518 // AliasCache - Track alias queries to guard against recursion.
556 "Basic Alias Analysis (stateless AA impl)",
560 "Basic Alias Analysis (stateless AA impl)",
714 // is impossible to alias the pointer we're checking. If not, we have to
861 // If we have two gep instructions with must-alias'ing base pointers, figure
864 // Do the base pointers alias?
872 // Otherwise, we have a MustAlias. Since the base pointers alias each other
900 // pointer, we know they cannot alias.
909 // If V2 may alias GEP base pointer, conservatively returns MayAlias.
910 // If V2 is known not to alias GEP base pointer, then the two values
911 // cannot alias per GEP semantics: "A pointer value formed from a
930 // computed pointers, the resultant pointers are a must alias. This
934 // must aliases the GEP, the end result is a must alias also.
968 // two locations do not alias.
1012 AliasResult Alias =
1015 if (Alias == MayAlias)
1020 return MergeAliasResults(ThisAlias, Alias);
1025 AliasResult Alias =
1027 if (Alias == MayAlias)
1032 return MergeAliasResults(ThisAlias, Alias);
1047 AliasResult Alias =
1051 if (Alias == MayAlias)
1058 Alias = MergeAliasResults(ThisAlias, Alias);
1059 if (Alias == MayAlias)
1062 return Alias;
1079 AliasResult Alias = aliasCheck(V2, V2Size, V2TBAAInfo,
1083 if (Alias == MayAlias)
1093 Alias = MergeAliasResults(ThisAlias, Alias);
1094 if (Alias == MayAlias)
1098 return Alias;
1118 // Are we checking for alias of the same value?
1122 return NoAlias; // Scalars cannot alias each other
1129 // don't alias any other pointer.
1138 // If V1/V2 point to two different objects we know that we have no alias.
1142 // Constant pointers can't alias with non-const isIdentifiedObject objects.
1147 // Arguments can't alias with local allocations or noalias calls
1153 // Most objects can't alias null.
1174 // side, then we know such behavior is undefined and can assume no alias.
1191 // FIXME: This isn't aggressively handling alias(GEP, PHI) for example: if the
1232 AliasAnalysis::alias(Location(V1, V1Size, V1TBAAInfo),