[clang] [AMDGPU] Support the OpenCL generic addrspace feature by default (PR #137636)
Fraser Cormack via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 28 07:12:44 PDT 2025
https://github.com/frasercrmck updated https://github.com/llvm/llvm-project/pull/137636
>From bfaf6b32f88c0439b5f70a5fa78fc0927307ecce Mon Sep 17 00:00:00 2001
From: Fraser Cormack <fraser at codeplay.com>
Date: Mon, 28 Apr 2025 15:06:58 +0100
Subject: [PATCH 1/2] [AMDGPU] Support the OpenCL generic addrspace feature by
default
This feature should be supported on AMDGCN architectures with flat
addressing.
---
clang/lib/Basic/Targets/AMDGPU.h | 2 ++
clang/test/Misc/amdgcn.languageOptsOpenCL.cl | 8 ++++++++
clang/test/Misc/r600.languageOptsOpenCL.cl | 5 +++++
3 files changed, 15 insertions(+)
diff --git a/clang/lib/Basic/Targets/AMDGPU.h b/clang/lib/Basic/Targets/AMDGPU.h
index 63b0d4b6e5fc0..aec6cda808d99 100644
--- a/clang/lib/Basic/Targets/AMDGPU.h
+++ b/clang/lib/Basic/Targets/AMDGPU.h
@@ -318,6 +318,8 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo {
Opts["__opencl_c_images"] = true;
Opts["__opencl_c_3d_image_writes"] = true;
Opts["cl_khr_3d_image_writes"] = true;
+
+ Opts["__opencl_c_generic_address_space"] = GPUKind >= llvm::AMDGPU::GK_GFX700;
}
}
diff --git a/clang/test/Misc/amdgcn.languageOptsOpenCL.cl b/clang/test/Misc/amdgcn.languageOptsOpenCL.cl
index 186cdae0494c6..50c78d70b83d9 100644
--- a/clang/test/Misc/amdgcn.languageOptsOpenCL.cl
+++ b/clang/test/Misc/amdgcn.languageOptsOpenCL.cl
@@ -155,3 +155,11 @@
#endif
#pragma OPENCL EXTENSION cl_amd_media_ops2: enable
+#if (__OPENCL_C_VERSION__ >= 300)
+#ifndef __opencl_c_generic_address_space
+#error "Missing __opencl_c_generic_address_space define"
+#else
+#error "Incorrect __opencl_c_generic_address_space define"
+#endif
+#pragma OPENCL EXTENSION __opencl_c_generic_address_space: enable
+#endif
diff --git a/clang/test/Misc/r600.languageOptsOpenCL.cl b/clang/test/Misc/r600.languageOptsOpenCL.cl
index 600c49f4ed692..27a7691d53575 100644
--- a/clang/test/Misc/r600.languageOptsOpenCL.cl
+++ b/clang/test/Misc/r600.languageOptsOpenCL.cl
@@ -146,3 +146,8 @@
#pragma OPENCL EXTENSION cl_khr_subgroups: enable
// expected-warning at -1{{unsupported OpenCL extension 'cl_khr_subgroups' - ignoring}}
+#ifdef __opencl_c_generic_address_space
+#error "Incorrect __opencl_c_generic_address_space define"
+#endif
+#pragma OPENCL EXTENSION __opencl_c_generic_address_space: enable
+// expected-warning at -1{{OpenCL extension '__opencl_c_generic_address_space' unknown or does not require pragma - ignoring}}
>From c420de346d38790e6acc06fed2de14c6b2c1fe9a Mon Sep 17 00:00:00 2001
From: Fraser Cormack <fraser at codeplay.com>
Date: Mon, 28 Apr 2025 15:12:34 +0100
Subject: [PATCH 2/2] fix formatting
---
clang/lib/Basic/Targets/AMDGPU.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/clang/lib/Basic/Targets/AMDGPU.h b/clang/lib/Basic/Targets/AMDGPU.h
index aec6cda808d99..8ea544ba28b10 100644
--- a/clang/lib/Basic/Targets/AMDGPU.h
+++ b/clang/lib/Basic/Targets/AMDGPU.h
@@ -319,7 +319,8 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo {
Opts["__opencl_c_3d_image_writes"] = true;
Opts["cl_khr_3d_image_writes"] = true;
- Opts["__opencl_c_generic_address_space"] = GPUKind >= llvm::AMDGPU::GK_GFX700;
+ Opts["__opencl_c_generic_address_space"] =
+ GPUKind >= llvm::AMDGPU::GK_GFX700;
}
}
More information about the cfe-commits
mailing list