[llvm] AMDGPU: Create a dummy call sequence when emitting call error (PR #170656)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 4 09:11:25 PST 2025


https://github.com/arsenm updated https://github.com/llvm/llvm-project/pull/170656

>From ce03c68c0e4658ff27fa64f2c4f149e2a2ba9683 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Thu, 4 Dec 2025 13:01:22 +0100
Subject: [PATCH] AMDGPU: Create a dummy call sequence when emitting call error

At least one special case call lowering tries to parse the call
sequence and asserts when it can't find a callseq_end.
---
 llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
index ba80c0695115c..128125d05a3c8 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
@@ -1412,7 +1412,12 @@ SDValue AMDGPUTargetLowering::lowerUnhandledCall(CallLoweringInfo &CLI,
       InVals.push_back(DAG.getPOISON(Arg.VT));
   }
 
-  return CLI.Chain;
+  // FIXME: Hack because R600 doesn't handle callseq pseudos yet.
+  if (getTargetMachine().getTargetTriple().getArch() == Triple::r600)
+    return CLI.Chain;
+
+  SDValue Chain = DAG.getCALLSEQ_START(CLI.Chain, 0, 0, CLI.DL);
+  return DAG.getCALLSEQ_END(Chain, 0, 0, /*InGlue=*/SDValue(), CLI.DL);
 }
 
 SDValue AMDGPUTargetLowering::LowerCall(CallLoweringInfo &CLI,



More information about the llvm-commits mailing list