diff options
author | Princeton Ferro <pferro@nvidia.com> | 2025-07-18 14:11:31 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-18 14:11:31 -0700 |
commit | d63ab5467dcae0492e2f4def336ddbb73ce10dc5 (patch) | |
tree | 5be859caaee00f136ac6712fe6527c1f200aa09c /llvm/lib | |
parent | 3be44e25804e776d3ff071740a60ae6d2f3ef4a7 (diff) | |
download | llvm-d63ab5467dcae0492e2f4def336ddbb73ce10dc5.zip llvm-d63ab5467dcae0492e2f4def336ddbb73ce10dc5.tar.gz llvm-d63ab5467dcae0492e2f4def336ddbb73ce10dc5.tar.bz2 |
[NVPTX] don't erase CopyToRegs when folding movs into loads (#149393)
We may still need to keep CopyToReg even after folding uses into vector
loads, since the original register may be used in other blocks.
Partially reverts 1fdbe6984976d9e85ab3b1a93e8de434a85c5646
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp b/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp index 7aa06f9..31b236a 100644 --- a/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp @@ -5060,12 +5060,6 @@ combineUnpackingMovIntoLoad(SDNode *N, TargetLowering::DAGCombinerInfo &DCI) { return !U.getUser()->use_empty(); } - // Handle CopyToReg nodes that will become dead after our replacement - if (U.getUser()->getOpcode() == ISD::CopyToReg) { - DeadCopyToRegs.push_back(U.getUser()); - return true; - } - // Otherwise, this use prevents us from splitting a value. return false; })) @@ -5132,10 +5126,6 @@ combineUnpackingMovIntoLoad(SDNode *N, TargetLowering::DAGCombinerInfo &DCI) { for (unsigned I : seq(NewLoad->getNumValues() - NewNumOutputs)) Results.push_back(NewLoad.getValue(NewNumOutputs + I)); - // Remove dead CopyToReg nodes by folding them into the chain they reference - for (SDNode *CTR : DeadCopyToRegs) - DCI.CombineTo(CTR, CTR->getOperand(0)); - return DCI.DAG.getMergeValues(Results, DL); } @@ -6544,4 +6534,4 @@ void NVPTXTargetLowering::computeKnownBitsForTargetNode( default: break; } -}
\ No newline at end of file +} |