Lines Matching full:alias

1 //===- AliasSetTracker.cpp - Alias Sets Tracker implementation-------------===//
39 "alias-set-saturation-threshold", cl::Hidden, cl::init(250),
40 cl::desc("The maximum total number of memory locations alias "
43 /// mergeSetIn - Merge the specified alias set into this alias set.
46 assert(!AS.Forward && "Alias set is already forwarding!"); in mergeSetIn()
49 // Update the alias and access types of this set... in mergeSetIn()
51 Alias |= AS.Alias; in mergeSetIn()
53 if (Alias == SetMustAlias) { in mergeSetIn()
55 // find a must-alias pair between them, this set becomes a may alias. in mergeSetIn()
61 Alias = SetMayAlias; in mergeSetIn()
98 // If we've removed the saturated alias set, set saturated marker back to in removeAliasSet()
107 assert(RefCount == 0 && "Cannot remove non-dead alias set from tracker!"); in removeFromTracker()
115 // If we cannot find a must-alias with any of the existing MemoryLocs, we in addMemoryLocation()
116 // must downgrade to may-alias. in addMemoryLocation()
120 Alias = SetMayAlias; in addMemoryLocation()
140 Alias = SetMayAlias; in addUnknownInst()
146 Alias = SetMayAlias; in addUnknownInst()
151 /// alias one of the members in the set return the appropriate AliasResult.
161 AliasResult AR = AA.alias(MemLoc, ASMemLoc); in aliasesMemoryLocation()
215 /// mergeAliasSetsForMemoryLocation - Given a memory location, merge all alias
216 /// sets that may alias it. Return the unified set, or nullptr if no aliasing
217 /// set was found. A known existing alias set for the pointer value of the
229 // An alias set that already contains a memory location with the same in mergeAliasSetsForMemoryLocation()
233 // a known exception are undef pointer values, where alias(undef, undef) is in mergeAliasSetsForMemoryLocation()
245 // If this is the first alias set ptr can go into, remember it. in mergeAliasSetsForMemoryLocation()
262 // If this is the first alias set ptr can go into, remember it. in findAliasSetForUnknownInst()
273 // The alias sets are indexed with a map from the memory locations' pointer in getAliasSetFor()
275 // alias set associated with its pointer. in getAliasSetFor()
286 // At this point, the AST is saturated, so we only have one active alias in getAliasSetFor()
287 // set. That means we already know which alias set we want to return, and in getAliasSetFor()
294 // Add it to the alias set it aliases. in getAliasSetFor()
297 // Otherwise create a new alias set to hold the new memory location. in getAliasSetFor()
302 // Register memory location in selected alias set. in getAliasSetFor()
304 // Register selected alias set in pointer map (or ensure it is consistent with in getAliasSetFor()
309 "be in different alias sets"); in getAliasSetFor()
367 return; // doesn't alias anything in addUnknown()
439 "Merging AliasSetTracker objects with different Alias Analyses!"); in add()
441 // Loop over all of the alias sets in AST, adding the members contained in add()
442 // therein into the current alias sets. This can cause alias sets to be in add()
446 continue; // Ignore forwarding alias sets in add()
448 // If there are any call sites in the alias set, add them to this AST. in add()
452 // Loop over all of the memory locations in this alias set. in add()
463 // Collect all alias sets, so that we can drop references with impunity in mergeAllAliasSets()
474 AliasAnyAS->Alias = AliasSet::SetMayAlias; in mergeAllAliasSets()
502 // elements to alias each-other. in addMemoryLocation()
515 OS << (Alias == SetMustAlias ? "must" : "may") << " alias, "; in print()
555 OS << "Alias Set Tracker: " << AliasSets.size(); in print()
558 OS << " alias sets for " << PointerMap.size() << " pointer values.\n"; in print()
580 OS << "Alias sets for function '" << F.getName() << "':\n"; in run()