[lld] [lld][ELF] improve AMD error message (PR #135082)
Maksim Levental via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 9 22:54:55 PDT 2025
https://github.com/makslevental updated https://github.com/llvm/llvm-project/pull/135082
>From 986fd9e46624d273908d7087558746dcdfbb64c2 Mon Sep 17 00:00:00 2001
From: Maksim Levental <maksim.levental at gmail.com>
Date: Wed, 9 Apr 2025 17:08:29 -0400
Subject: [PATCH 1/2] [lld][ELF] improve AMD error message
---
lld/ELF/Arch/AMDGPU.cpp | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/lld/ELF/Arch/AMDGPU.cpp b/lld/ELF/Arch/AMDGPU.cpp
index 52fc779855a36..7dfd7476ffd84 100644
--- a/lld/ELF/Arch/AMDGPU.cpp
+++ b/lld/ELF/Arch/AMDGPU.cpp
@@ -79,8 +79,8 @@ uint32_t AMDGPU::calcEFlagsV4() const {
if (retXnack == EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4 ||
(retXnack != EF_AMDGPU_FEATURE_XNACK_ANY_V4 &&
- (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4)
- != EF_AMDGPU_FEATURE_XNACK_ANY_V4)) {
+ (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4) !=
+ EF_AMDGPU_FEATURE_XNACK_ANY_V4)) {
if (retXnack != (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4)) {
Err(ctx) << "incompatible xnack: " << f;
return 0;
@@ -92,8 +92,8 @@ uint32_t AMDGPU::calcEFlagsV4() const {
if (retSramEcc == EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4 ||
(retSramEcc != EF_AMDGPU_FEATURE_SRAMECC_ANY_V4 &&
- (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4) !=
- EF_AMDGPU_FEATURE_SRAMECC_ANY_V4)) {
+ (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4) !=
+ EF_AMDGPU_FEATURE_SRAMECC_ANY_V4)) {
if (retSramEcc != (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4)) {
Err(ctx) << "incompatible sramecc: " << f;
return 0;
@@ -143,7 +143,7 @@ uint32_t AMDGPU::calcEFlags() const {
case ELFABIVERSION_AMDGPU_HSA_V6:
return calcEFlagsV6();
default:
- Err(ctx) << "unknown abi version: " << abiVersion;
+ Err(ctx) << "unknown amd-hsa abi version: " << static_cast<int>(abiVersion);
return 0;
}
}
>From 04fa028aad2fed6cde16b1bcbbf6d708a6173c4a Mon Sep 17 00:00:00 2001
From: Maksim Levental <maksim.levental at gmail.com>
Date: Thu, 10 Apr 2025 01:37:08 -0400
Subject: [PATCH 2/2] comments
---
lld/ELF/Arch/AMDGPU.cpp | 10 +++++-----
lld/test/ELF/amdgpu-abi-version-err.s | 9 +++++++--
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/lld/ELF/Arch/AMDGPU.cpp b/lld/ELF/Arch/AMDGPU.cpp
index 7dfd7476ffd84..1fffd0157dad9 100644
--- a/lld/ELF/Arch/AMDGPU.cpp
+++ b/lld/ELF/Arch/AMDGPU.cpp
@@ -79,8 +79,8 @@ uint32_t AMDGPU::calcEFlagsV4() const {
if (retXnack == EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4 ||
(retXnack != EF_AMDGPU_FEATURE_XNACK_ANY_V4 &&
- (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4) !=
- EF_AMDGPU_FEATURE_XNACK_ANY_V4)) {
+ (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4)
+ != EF_AMDGPU_FEATURE_XNACK_ANY_V4)) {
if (retXnack != (getEFlags(f) & EF_AMDGPU_FEATURE_XNACK_V4)) {
Err(ctx) << "incompatible xnack: " << f;
return 0;
@@ -92,8 +92,8 @@ uint32_t AMDGPU::calcEFlagsV4() const {
if (retSramEcc == EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4 ||
(retSramEcc != EF_AMDGPU_FEATURE_SRAMECC_ANY_V4 &&
- (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4) !=
- EF_AMDGPU_FEATURE_SRAMECC_ANY_V4)) {
+ (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4) !=
+ EF_AMDGPU_FEATURE_SRAMECC_ANY_V4)) {
if (retSramEcc != (getEFlags(f) & EF_AMDGPU_FEATURE_SRAMECC_V4)) {
Err(ctx) << "incompatible sramecc: " << f;
return 0;
@@ -143,7 +143,7 @@ uint32_t AMDGPU::calcEFlags() const {
case ELFABIVERSION_AMDGPU_HSA_V6:
return calcEFlagsV6();
default:
- Err(ctx) << "unknown amd-hsa abi version: " << static_cast<int>(abiVersion);
+ Err(ctx) << "unknown AMDHSA ABI version: " << static_cast<int>(abiVersion);
return 0;
}
}
diff --git a/lld/test/ELF/amdgpu-abi-version-err.s b/lld/test/ELF/amdgpu-abi-version-err.s
index d7ce1d5e485af..4f50511cf77d5 100644
--- a/lld/test/ELF/amdgpu-abi-version-err.s
+++ b/lld/test/ELF/amdgpu-abi-version-err.s
@@ -1,9 +1,14 @@
# REQUIRES: amdgpu
# RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx900 --amdhsa-code-object-version=4 -filetype=obj %s -o %t-0.o
# RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx900 --amdhsa-code-object-version=5 -filetype=obj %s -o %t-1.o
-# RUN: not ld.lld -shared %t-0.o %t-1.o -o /dev/null 2>&1 | FileCheck %s
+# RUN: not ld.lld -shared %t-0.o %t-1.o -o /dev/null 2>&1 | FileCheck %s --check-prefix=INCOMPATIBLE
-# CHECK: ld.lld: error: incompatible ABI version: {{.*}}-1.o
+# RUN: llvm-mc -triple amdgcn-amd-amdhsa -mcpu=gfx900 --amdhsa-code-object-version=42 -filetype=obj %s -o %t-42.o
+# RUN: not ld.lld -shared %t-42.o -o /dev/null 2>&1 | FileCheck %s --check-prefix=UNKNOWN
+
+# CHECK-INCOMPATIBLE: ld.lld: error: incompatible ABI version: {{.*}}-1.o
+
+# CHECK-UNKNOWN: ld.lld: error: unknown AMDHSA ABI version: 42
.text
s_nop 0x0
More information about the llvm-commits
mailing list