[ScopedNoAliasAA] Only collect noalias nodes if we have alias.scope nodes
authorDavid Majnemer <david.majnemer@gmail.com>
Mon, 15 Aug 2016 02:23:50 +0000 (02:23 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Mon, 15 Aug 2016 02:23:50 +0000 (02:23 +0000)
No functional change is intended.

llvm-svn: 278646

llvm/lib/Analysis/ScopedNoAliasAA.cpp

index e34a221..1fc6e02 100644 (file)
@@ -151,12 +151,14 @@ bool ScopedNoAliasAAResult::mayAliasInScopes(const MDNode *Scopes,
   // We alias unless, for some domain, the set of noalias scopes in that domain
   // is a superset of the set of alias scopes in that domain.
   for (const MDNode *Domain : Domains) {
-    SmallPtrSet<const MDNode *, 16> NANodes, ScopeNodes;
-    collectMDInDomain(NoAlias, Domain, NANodes);
+    SmallPtrSet<const MDNode *, 16> ScopeNodes;
     collectMDInDomain(Scopes, Domain, ScopeNodes);
     if (ScopeNodes.empty())
       continue;
 
+    SmallPtrSet<const MDNode *, 16> NANodes;
+    collectMDInDomain(NoAlias, Domain, NANodes);
+
     // To not alias, all of the nodes in ScopeNodes must be in NANodes.
     bool FoundAll = true;
     for (const MDNode *SMD : ScopeNodes)