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!");
49 // Update the alias and access types of this set...
51 Alias |= AS.Alias;
53 if (Alias == SetMustAlias) {
55 // find a must-alias pair between them, this set becomes a may alias.
61 Alias = SetMayAlias;
98 // If we've removed the saturated alias set, set saturated marker back to
107 assert(RefCount == 0 && "Cannot remove non-dead alias set from tracker!");
115 // If we cannot find a must-alias with any of the existing MemoryLocs, we
116 // must downgrade to may-alias.
120 Alias = SetMayAlias;
140 Alias = SetMayAlias;
146 Alias = SetMayAlias;
151 /// alias one of the members in the set return the appropriate AliasResult.
161 AliasResult AR = AA.alias(MemLoc, ASMemLoc);
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
233 // a known exception are undef pointer values, where alias(undef, undef) is
245 // If this is the first alias set ptr can go into, remember it.
262 // If this is the first alias set ptr can go into, remember it.
273 // The alias sets are indexed with a map from the memory locations' pointer
275 // alias set associated with its pointer.
286 // At this point, the AST is saturated, so we only have one active alias
287 // set. That means we already know which alias set we want to return, and
294 // Add it to the alias set it aliases.
297 // Otherwise create a new alias set to hold the new memory location.
302 // Register memory location in selected alias set.
304 // Register selected alias set in pointer map (or ensure it is consistent with
309 "be in different alias sets");
367 return; // doesn't alias anything
439 "Merging AliasSetTracker objects with different Alias Analyses!");
441 // Loop over all of the alias sets in AST, adding the members contained
442 // therein into the current alias sets. This can cause alias sets to be
446 continue; // Ignore forwarding alias sets
448 // If there are any call sites in the alias set, add them to this AST.
452 // Loop over all of the memory locations in this alias set.
463 // Collect all alias sets, so that we can drop references with impunity
474 AliasAnyAS->Alias = AliasSet::SetMayAlias;
502 // elements to alias each-other.
515 OS << (Alias == SetMustAlias ? "must" : "may") << " alias, ";
555 OS << "Alias Set Tracker: " << AliasSets.size();
558 OS << " alias sets for " << PointerMap.size() << " pointer values.\n";
580 OS << "Alias sets for function '" << F.getName() << "':\n";