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 <[email protected]> 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, _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
