Author: Nick Sarnie Date: 2025-04-24T14:20:13Z New Revision: 52a96491e1e4e0d033e39fad87f49ccd871df41d
URL: https://github.com/llvm/llvm-project/commit/52a96491e1e4e0d033e39fad87f49ccd871df41d DIFF: https://github.com/llvm/llvm-project/commit/52a96491e1e4e0d033e39fad87f49ccd871df41d.diff LOG: [clang][SPIR-V] Addrspace of opencl_global should always be 1 (#136753) This fixes a CUDA SPIR-V regression introduced in https://github.com/llvm/llvm-project/pull/134399. --------- Signed-off-by: Sarnie, Nick <nick.sar...@intel.com> Added: clang/test/CodeGenCUDASPIRV/printf.cu Modified: clang/lib/Basic/Targets/SPIR.h Removed: ################################################################################ diff --git a/clang/lib/Basic/Targets/SPIR.h b/clang/lib/Basic/Targets/SPIR.h index 4509748589b76..310ef9f2df2c6 100644 --- a/clang/lib/Basic/Targets/SPIR.h +++ b/clang/lib/Basic/Targets/SPIR.h @@ -58,8 +58,9 @@ static const unsigned SPIRDefIsPrivMap[] = { // Used by both the SPIR and SPIR-V targets. static const unsigned SPIRDefIsGenMap[] = { 4, // Default - // OpenCL address space values for this map are dummy and they can't be used - 0, // opencl_global + // Some OpenCL address space values for this map are dummy and they can't be + // used + 1, // opencl_global 0, // opencl_local 0, // opencl_constant 0, // opencl_private diff --git a/clang/test/CodeGenCUDASPIRV/printf.cu b/clang/test/CodeGenCUDASPIRV/printf.cu new file mode 100644 index 0000000000000..936e920f4a755 --- /dev/null +++ b/clang/test/CodeGenCUDASPIRV/printf.cu @@ -0,0 +1,11 @@ +// RUN: %clang_cc1 -fcuda-is-device -triple spirv32 -o - -emit-llvm -x cuda %s | FileCheck --check-prefix=CHECK-SPIRV32 %s +// RUN: %clang_cc1 -fcuda-is-device -triple spirv64 -o - -emit-llvm -x cuda %s | FileCheck --check-prefix=CHECK-SPIRV64 %s + +// CHECK-SPIRV32: @.str = private unnamed_addr addrspace(4) constant [13 x i8] c"Hello World\0A\00", align 1 +// CHECK-SPIRV64: @.str = private unnamed_addr addrspace(1) constant [13 x i8] c"Hello World\0A\00", align 1 + +extern "C" __attribute__((device)) int printf(const char* format, ...); + +__attribute__((global)) void printf_kernel() { + printf("Hello World\n"); +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits