[llvm] AMDGPU: Use reportFatalUsageError in AMDGPULowerModuleLDS (PR #145130)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 20 18:52:09 PDT 2025
https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/145130
None
>From 7f7b1c84f352ca6cba6e1b5beb0896ba6694e940 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Sat, 21 Jun 2025 10:43:03 +0900
Subject: [PATCH] AMDGPU: Use reportFatalUsageError in AMDGPULowerModuleLDS
---
llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp | 9 +++++----
llvm/test/CodeGen/AMDGPU/lds-reject-anonymous-kernels.ll | 6 +++---
.../AMDGPU/lower-module-lds-single-var-ambiguous.ll | 2 +-
3 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp b/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
index e0444da2c4615..d443f4ea7d5c4 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
@@ -572,7 +572,7 @@ class AMDGPULowerModuleLDS {
if (OrderedKernels.size() > UINT32_MAX) {
// 32 bit keeps it in one SGPR. > 2**32 kernels won't fit on the GPU
- report_fatal_error("Unimplemented LDS lowering for > 2**32 kernels");
+ reportFatalUsageError("unimplemented LDS lowering for > 2**32 kernels");
}
for (size_t i = 0; i < OrderedKernels.size(); i++) {
@@ -632,7 +632,8 @@ class AMDGPULowerModuleLDS {
if (K.second.size() == 1) {
KernelAccessVariables.insert(GV);
} else {
- report_fatal_error(
+ // FIXME: This should use DiagnosticInfo
+ reportFatalUsageError(
"cannot lower LDS '" + GV->getName() +
"' to kernel access as it is reachable from multiple kernels");
}
@@ -781,7 +782,7 @@ class AMDGPULowerModuleLDS {
// backend) difficult to use. This does mean that llvm test cases need
// to name the kernels.
if (!Func.hasName()) {
- report_fatal_error("Anonymous kernels cannot use LDS variables");
+ reportFatalUsageError("anonymous kernels cannot use LDS variables");
}
std::string VarName =
@@ -877,7 +878,7 @@ class AMDGPULowerModuleLDS {
if (KernelsThatIndirectlyAllocateDynamicLDS.contains(func)) {
assert(isKernelLDS(func));
if (!func->hasName()) {
- report_fatal_error("Anonymous kernels cannot use LDS variables");
+ reportFatalUsageError("anonymous kernels cannot use LDS variables");
}
GlobalVariable *N =
diff --git a/llvm/test/CodeGen/AMDGPU/lds-reject-anonymous-kernels.ll b/llvm/test/CodeGen/AMDGPU/lds-reject-anonymous-kernels.ll
index 9648cb12186bd..2a9d18add0cdc 100644
--- a/llvm/test/CodeGen/AMDGPU/lds-reject-anonymous-kernels.ll
+++ b/llvm/test/CodeGen/AMDGPU/lds-reject-anonymous-kernels.ll
@@ -1,9 +1,9 @@
-; RUN: not --crash opt -S -mtriple=amdgcn-- -amdgpu-lower-module-lds < %s 2>&1 | FileCheck %s
-; RUN: not --crash opt -S -mtriple=amdgcn-- -passes=amdgpu-lower-module-lds < %s 2>&1 | FileCheck %s
+; RUN: not opt -S -mtriple=amdgcn-- -amdgpu-lower-module-lds < %s 2>&1 | FileCheck %s
+; RUN: not opt -S -mtriple=amdgcn-- -passes=amdgpu-lower-module-lds < %s 2>&1 | FileCheck %s
@var1 = addrspace(3) global i32 poison, align 8
-; CHECK: LLVM ERROR: Anonymous kernels cannot use LDS variables
+; CHECK: LLVM ERROR: anonymous kernels cannot use LDS variables
define amdgpu_kernel void @0() {
%val0 = load i32, ptr addrspace(3) @var1
%val1 = add i32 %val0, 4
diff --git a/llvm/test/CodeGen/AMDGPU/lower-module-lds-single-var-ambiguous.ll b/llvm/test/CodeGen/AMDGPU/lower-module-lds-single-var-ambiguous.ll
index bd95cdddd4613..3aeaa1ddbef26 100644
--- a/llvm/test/CodeGen/AMDGPU/lower-module-lds-single-var-ambiguous.ll
+++ b/llvm/test/CodeGen/AMDGPU/lower-module-lds-single-var-ambiguous.ll
@@ -1,7 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -S -mtriple=amdgcn-- -passes=amdgpu-lower-module-lds < %s --amdgpu-lower-module-lds-strategy=module | FileCheck -check-prefixes=CHECK,M_OR_HY %s
; RUN: opt -S -mtriple=amdgcn-- -passes=amdgpu-lower-module-lds < %s --amdgpu-lower-module-lds-strategy=table | FileCheck -check-prefixes=CHECK,TABLE %s
-; RUN: not --crash opt -S -mtriple=amdgcn-- -passes=amdgpu-lower-module-lds < %s --amdgpu-lower-module-lds-strategy=kernel 2>&1 | FileCheck -check-prefixes=KERNEL %s
+; RUN: not opt -S -mtriple=amdgcn-- -passes=amdgpu-lower-module-lds < %s --amdgpu-lower-module-lds-strategy=kernel 2>&1 | FileCheck -check-prefixes=KERNEL %s
; RUN: opt -S -mtriple=amdgcn-- -passes=amdgpu-lower-module-lds < %s --amdgpu-lower-module-lds-strategy=hybrid | FileCheck -check-prefixes=CHECK,M_OR_HY %s
;; Two kernels access the same variable, specialisation gives them each their own copy of it
More information about the llvm-commits
mailing list