Lines Matching refs:NoAlias
23 // a noalias tag for a specific scope:
26 // ... = load %ptr2, !alias.scope !{ !scope1, !scope2 }, !noalias !{ !scope1 }
29 // has a set of noalias scopes in some domain that is superset of the alias
50 static cl::opt<bool> EnableScopedNoAlias("enable-scoped-noalias",
84 const MDNode *ANoAlias = LocA.AATags.NoAlias, *BNoAlias = LocB.AATags.NoAlias;
87 return NoAlias;
90 return NoAlias;
107 Loc.AATags.NoAlias))
141 const MDNode *NoAlias) const {
142 if (!Scopes || !NoAlias)
145 // Collect the set of scope domains relevant to the noalias scopes.
147 for (unsigned i = 0, ie = NoAlias->getNumOperands(); i != ie; ++i)
148 if (const MDNode *NAMD = dyn_cast<MDNode>(NoAlias->getOperand(i)))
152 // We alias unless, for some domain, the set of noalias scopes in that domain
156 collectMDInDomain(NoAlias, Domain, NANodes);
184 INITIALIZE_PASS_BEGIN(ScopedNoAliasAAWrapperPass, "scoped-noalias",
185 "Scoped NoAlias Alias Analysis", false, true)
187 INITIALIZE_PASS_END(ScopedNoAliasAAWrapperPass, "scoped-noalias",
188 "Scoped NoAlias Alias Analysis", false, true)