[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.

llvm-svn: 357299

llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

index 2cd698e..13e1e96 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());
   }