[llvm] AMDGPU: Use reportFatalUsageError for unhandled calling conventions (PR #145261)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Sun Jun 22 21:54:58 PDT 2025
https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/145261
Should switch this to DiagnosticInfo and use the default calling
convention, but that would require passing in the context.
>From 6ca7358d764551542e52d9b97b5c1c1436121480 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Mon, 23 Jun 2025 13:34:04 +0900
Subject: [PATCH] AMDGPU: Use reportFatalUsageError for unhandled calling
conventions
Should switch this to DiagnosticInfo and use the default calling
convention, but that would require passing in the context.
---
llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp | 4 ++--
llvm/lib/Target/AMDGPU/R600ISelLowering.cpp | 2 +-
llvm/test/CodeGen/AMDGPU/unsupported-calling-conv-call.ll | 7 +++++++
llvm/test/CodeGen/AMDGPU/unsupported-calling-conv-func.ll | 6 ++++++
4 files changed, 16 insertions(+), 3 deletions(-)
create mode 100644 llvm/test/CodeGen/AMDGPU/unsupported-calling-conv-call.ll
create mode 100644 llvm/test/CodeGen/AMDGPU/unsupported-calling-conv-func.ll
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
index 134adc681215f..3db2b3bff2d36 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
@@ -1142,7 +1142,7 @@ CCAssignFn *AMDGPUCallLowering::CCAssignFnForCall(CallingConv::ID CC,
case CallingConv::AMDGPU_KERNEL:
case CallingConv::SPIR_KERNEL:
default:
- report_fatal_error("Unsupported calling convention for call");
+ reportFatalUsageError("unsupported calling convention for call");
}
}
@@ -1169,7 +1169,7 @@ CCAssignFn *AMDGPUCallLowering::CCAssignFnForReturn(CallingConv::ID CC,
case CallingConv::Cold:
return RetCC_AMDGPU_Func;
default:
- report_fatal_error("Unsupported calling convention.");
+ reportFatalUsageError("unsupported calling convention");
}
}
diff --git a/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp b/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
index 9c2811006bc1c..3c8bfa629ed3d 100644
--- a/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp
@@ -1448,7 +1448,7 @@ CCAssignFn *R600TargetLowering::CCAssignFnForCall(CallingConv::ID CC,
case CallingConv::AMDGPU_LS:
return CC_R600;
default:
- report_fatal_error("Unsupported calling convention.");
+ reportFatalUsageError("unsupported calling convention");
}
}
diff --git a/llvm/test/CodeGen/AMDGPU/unsupported-calling-conv-call.ll b/llvm/test/CodeGen/AMDGPU/unsupported-calling-conv-call.ll
new file mode 100644
index 0000000000000..8824e8e1b3759
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/unsupported-calling-conv-call.ll
@@ -0,0 +1,7 @@
+; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -filetype=null %s 2>&1 | FileCheck %s
+
+; CHECK: LLVM ERROR: unsupported calling convention
+define void @caller(ptr %func) {
+ call aarch64_sve_vector_pcs void %func()
+ ret void
+}
diff --git a/llvm/test/CodeGen/AMDGPU/unsupported-calling-conv-func.ll b/llvm/test/CodeGen/AMDGPU/unsupported-calling-conv-func.ll
new file mode 100644
index 0000000000000..7ace7628a6e5b
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/unsupported-calling-conv-func.ll
@@ -0,0 +1,6 @@
+; RUN: not llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -filetype=null %s 2>&1 | FileCheck %s
+
+; CHECK: LLVM ERROR: unsupported calling convention
+define aarch64_sve_vector_pcs void @func() {
+ ret void
+}
More information about the llvm-commits
mailing list