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.
160 /// at the function-level. Different IdentifiedFunctionLocals can't alias.
161 /// Further, an IdentifiedFunctionLocal can not alias with any function
449 /// BasicAliasAnalysis - This is the primary alias analysis implementation.
465 AliasResult alias(const Location &LocA, const Location &LocB) override {
469 AliasResult Alias = aliasCheck(LocA.Ptr, LocA.Size, LocA.TBAATag,
477 return Alias;
516 // AliasCache - Track alias queries to guard against recursion.
531 /// alias(%p, %addr1) -> MayAlias !
585 "Basic Alias Analysis (stateless AA impl)",
589 "Basic Alias Analysis (stateless AA impl)",
840 // is impossible to alias the pointer we're checking. If not, we have to
873 // If we have two gep instructions with must-alias or not-alias'ing base
877 // Do the base pointers alias?
884 // Do the base pointers alias assuming type and size.
923 // Otherwise, we have a MustAlias. Since the base pointers alias each other
956 // pointer, we know they cannot alias.
965 // If V2 may alias GEP base pointer, conservatively returns MayAlias.
966 // If V2 is known not to alias GEP base pointer, then the two values
967 // cannot alias per GEP semantics: "A pointer value formed from a
989 // computed pointers, the resultant pointers are a must alias. This
993 // must aliases the GEP, the end result is a must alias also.
1035 // two locations do not alias.
1076 AliasResult Alias =
1079 if (Alias == MayAlias)
1084 return MergeAliasResults(ThisAlias, Alias);
1089 AliasResult Alias =
1091 if (Alias == MayAlias)
1096 return MergeAliasResults(ThisAlias, Alias);
1125 // Pretend the phis do not alias.
1126 AliasResult Alias = NoAlias;
1137 Alias = MergeAliasResults(ThisAlias, Alias);
1138 if (Alias == MayAlias)
1143 if (Alias != NoAlias)
1146 return Alias;
1163 AliasResult Alias = aliasCheck(V2, V2Size, V2TBAAInfo,
1167 if (Alias == MayAlias)
1177 Alias = MergeAliasResults(ThisAlias, Alias);
1178 if (Alias == MayAlias)
1182 return Alias;
1202 // Are we checking for alias of the same value?
1212 return NoAlias; // Scalars cannot alias each other
1219 // don't alias any other pointer.
1228 // If V1/V2 point to two different objects we know that we have no alias.
1232 // Constant pointers can't alias with non-const isIdentifiedObject objects.
1237 // Function arguments can't alias with things that are known to be
1243 // Most objects can't alias null.
1264 // side, then we know such behavior is undefined and can assume no alias.
1281 // FIXME: This isn't aggressively handling alias(GEP, PHI) for example: if the
1325 AliasAnalysis::alias(Location(V1, V1Size, V1TBAAInfo),