[llvm-branch-commits] [llvm] release/23.x: [SDAG] Use DAG.getTokenFactor in more places (#210949) (PR #211028)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Jul 21 08:56:35 PDT 2026
https://github.com/llvmbot created https://github.com/llvm/llvm-project/pull/211028
Backport ba836590ffed1305a770fc18f4a3f676f9829df1
Requested by: @RKSimon
>From 976a46606a74aef22782a201b4cd09e21ddb3161 Mon Sep 17 00:00:00 2001
From: David Green <david.green at arm.com>
Date: Tue, 21 Jul 2026 14:42:19 +0100
Subject: [PATCH] [SDAG] Use DAG.getTokenFactor in more places (#210949)
This will cause the TokenFactor to be split into nodes of at most
SDNode::getMaxNumOperands() size.
This fixes #189161 but I have not added a test case as the output is
in excess of 160000 lines long.
(cherry picked from commit ba836590ffed1305a770fc18f4a3f676f9829df1)
---
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
index 9719d603e1869..584de3e1132ce 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
@@ -9563,7 +9563,7 @@ getMemcpyLoadsAndStores(SelectionDAG &DAG, const SDLoc &dl, SDValue Chain,
}
}
}
- return DAG.getNode(ISD::TokenFactor, dl, MVT::Other, OutChains);
+ return DAG.getTokenFactor(dl, OutChains);
}
static SDValue getMemmoveLoadsAndStores(
@@ -9674,7 +9674,7 @@ static SDValue getMemmoveLoadsAndStores(
LoadChains.push_back(Value.getValue(1));
SrcOff += VTSize;
}
- Chain = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, LoadChains);
+ Chain = DAG.getTokenFactor(dl, LoadChains);
OutChains.clear();
uint64_t DstOff = 0;
for (unsigned i = 0; i < NumMemOps; i++) {
@@ -9716,7 +9716,7 @@ static SDValue getMemmoveLoadsAndStores(
DstOff += VTSize;
}
- return DAG.getNode(ISD::TokenFactor, dl, MVT::Other, OutChains);
+ return DAG.getTokenFactor(dl, OutChains);
}
/// Lower the call to 'memset' intrinsic function into a series of store
@@ -9871,7 +9871,7 @@ static SDValue getMemsetStores(SelectionDAG &DAG, const SDLoc &dl,
assert(Size == 0 && "Target's findOptimalMemOpLowering did not specify "
"stores that exactly cover the memset size");
- return DAG.getNode(ISD::TokenFactor, dl, MVT::Other, OutChains);
+ return DAG.getTokenFactor(dl, OutChains);
}
static void checkAddrSpaceIsValidForLibcall(const TargetLowering *TLI,
More information about the llvm-branch-commits
mailing list