]> granicus.if.org Git - llvm/commitdiff
[DAG] Avoid redundancy in StoreMerge TokenFactor generation.
authorNirav Dave <niravd@google.com>
Fri, 29 Mar 2019 18:50:22 +0000 (18:50 +0000)
committerNirav Dave <niravd@google.com>
Fri, 29 Mar 2019 18:50:22 +0000 (18:50 +0000)
Avoid generating redundant TokenFactor when all merged stores have
the same chain.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357299 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/DAGCombiner.cpp

index 2cd698eb7e0388f4603c9e04f313db368e3eea76..13e1e96cc92dd278a2e50667122f13b2d9b5eb05 100644 (file)
@@ -14514,9 +14514,9 @@ SDValue DAGCombiner::getMergeStoreChains(SmallVectorImpl<MemOpLink> &StoreNodes,
     Visited.insert(StoreNodes[i].MemNode);
   }
 
-  // don't include nodes that are children
+  // don't include nodes that are children or repeated nodes.
   for (unsigned i = 0; i < NumStores; ++i) {
-    if (Visited.count(StoreNodes[i].MemNode->getChain().getNode()) == 0)
+    if (Visited.insert(StoreNodes[i].MemNode->getChain().getNode()).second)
       Chains.push_back(StoreNodes[i].MemNode->getChain());
   }