Skip to content

Commit 498d807

Browse files
committed
[DAG] Cleanup unused nodes after store merge. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310648 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 5728970 commit 498d807

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

lib/CodeGen/SelectionDAG/DAGCombiner.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12552,8 +12552,15 @@ bool DAGCombiner::MergeStoresOfConstantsOrVecElts(
1255212552
}
1255312553

1255412554
// Replace all merged stores with the new store.
12555-
for (unsigned i = 0; i < NumStores; ++i)
12555+
for (unsigned i = 0; i < NumStores; ++i) {
12556+
SDValue Val = StoreNodes[i].MemNode->getOperand(1);
12557+
SDValue Addr = StoreNodes[i].MemNode->getOperand(2);
1255612558
CombineTo(StoreNodes[i].MemNode, NewStore);
12559+
if (Val.getNode()->use_empty())
12560+
recursivelyDeleteUnusedNodes(Val.getNode());
12561+
if (Addr.getNode()->use_empty())
12562+
recursivelyDeleteUnusedNodes(Addr.getNode());
12563+
}
1255712564

1255812565
AddToWorklist(NewChain.getNode());
1255912566
return true;
@@ -13186,9 +13193,12 @@ bool DAGCombiner::MergeConsecutiveStores(StoreSDNode *St) {
1318613193
// corresponding value if its no longer used.
1318713194
for (unsigned i = 0; i < NumElem; ++i) {
1318813195
SDValue Val = StoreNodes[i].MemNode->getOperand(1);
13196+
SDValue Addr = StoreNodes[i].MemNode->getOperand(2);
1318913197
CombineTo(StoreNodes[i].MemNode, NewStore);
1319013198
if (Val.getNode()->use_empty())
1319113199
recursivelyDeleteUnusedNodes(Val.getNode());
13200+
if (Addr.getNode()->use_empty())
13201+
recursivelyDeleteUnusedNodes(Addr.getNode());
1319213202
}
1319313203

1319413204
RV = true;

0 commit comments

Comments
 (0)