From ce03c68c0e4658ff27fa64f2c4f149e2a2ba9683 Mon Sep 17 00:00:00 2001 From: Matt Arsenault 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,