Skip to content

Commit 2c8781d

Browse files
authored
Revert "[Clang] Make the AS of llvm.compiler.used & llvm.used elements addrspace(0)" (#166242)
Reverts #164432 Breaks Comgr tests with the following: [2025-11-03T19:18:20.564Z] + clang -x hip --offload-arch=amdgcnspirv -nogpulib -nogpuinc --no-gpu-bundle-output --offload-device-only -O3 /jenkins/workspace/compiler-psdb-amd-staging/repos/llvm-project/amd/comgr/test-lit/spirv-tests/spirv-to-reloc.hip -o /jenkins/workspace/compiler-psdb-amd-staging/repos/out/ubuntu-22.04/22.04/build/amd_comgr/test-lit/spirv-tests/Output/spirv-to-reloc.hip.tmp.spv -fvisibility=hidden -fno-autolink -fexceptions -fcolor-diagnostics [2025-11-03T19:18:20.564Z] InvalidModule: Invalid SPIR-V module: Casts from private/local/global address space are allowed only to generic [2025-11-03T19:18:20.564Z] [2025-11-03T19:18:20.564Z] <badref> = addrspacecast ptr addrspace(1) @__hip_cuid_94fb83be5559070 to ptr [2025-11-03T19:18:20.564Z] clang: error: amdgcn-link command failed with exit code 10 (use -v to see invocation)
1 parent f62ff29 commit 2c8781d

File tree

3 files changed

+7
-71
lines changed

3 files changed

+7
-71
lines changed

clang/lib/CodeGen/CodeGenModule.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3331,18 +3331,18 @@ static void emitUsed(CodeGenModule &CGM, StringRef Name,
33313331
if (List.empty())
33323332
return;
33333333

3334-
llvm::PointerType *UnqualPtr =
3335-
llvm::PointerType::getUnqual(CGM.getLLVMContext());
3336-
33373334
// Convert List to what ConstantArray needs.
33383335
SmallVector<llvm::Constant*, 8> UsedArray;
33393336
UsedArray.resize(List.size());
33403337
for (unsigned i = 0, e = List.size(); i != e; ++i) {
3341-
UsedArray[i] = llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(
3342-
cast<llvm::Constant>(&*List[i]), UnqualPtr);
3338+
UsedArray[i] =
3339+
llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(
3340+
cast<llvm::Constant>(&*List[i]), CGM.Int8PtrTy);
33433341
}
33443342

3345-
llvm::ArrayType *ATy = llvm::ArrayType::get(UnqualPtr, UsedArray.size());
3343+
if (UsedArray.empty())
3344+
return;
3345+
llvm::ArrayType *ATy = llvm::ArrayType::get(CGM.Int8PtrTy, UsedArray.size());
33463346

33473347
auto *GV = new llvm::GlobalVariable(
33483348
CGM.getModule(), ATy, false, llvm::GlobalValue::AppendingLinkage,

clang/test/CodeGen/embed-bitcode-marker-with-nonzero-as.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33

44
// CHECK: @llvm.embedded.module = private addrspace(1) constant [0 x i8] zeroinitializer, section ".llvmbc", align 1
55
// CHECK-NEXT: @llvm.cmdline = private addrspace(1) constant [{{[0-9]+}} x i8] c"{{.*}}", section ".llvmcmd", align 1
6-
// CHECK-NEXT: @llvm.compiler.used = appending addrspace(1) global [5 x ptr] [ptr addrspacecast (ptr addrspace(1) @foo.managed to ptr), ptr addrspacecast (ptr addrspace(1) @foo to ptr), ptr addrspacecast (ptr addrspace(1) @__hip_cuid_ to ptr), ptr addrspacecast (ptr addrspace(1) @llvm.embedded.module to ptr), ptr addrspacecast (ptr addrspace(1) @llvm.cmdline to ptr)], section "llvm.metadata"
6+
// CHECK-NEXT: @llvm.compiler.used = appending addrspace(1) global [5 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) @foo.managed to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @foo to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @__hip_cuid_ to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @llvm.embedded.module to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @llvm.cmdline to ptr addrspace(4))], section "llvm.metadata"
77

88
__attribute__((managed)) int foo = 42;

clang/test/CodeGen/llvm_compiler_used_elements_are_unqual.c

Lines changed: 0 additions & 64 deletions
This file was deleted.

0 commit comments

Comments
 (0)