Skip to content

Commit 5054220

Browse files
committed
Revert "[Clang] Make the AS of llvm.compiler.used & llvm.used elements addrspace(0) (llvm#164432)"
This reverts commit bf2f577.
1 parent e302a6b commit 5054220

File tree

3 files changed

+9
-70
lines changed

3 files changed

+9
-70
lines changed

clang/lib/CodeGen/CodeGenModule.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3335,18 +3335,21 @@ static void emitUsed(CodeGenModule &CGM, StringRef Name,
33353335
if (List.empty())
33363336
return;
33373337

3338-
llvm::PointerType *UnqualPtr =
3339-
llvm::PointerType::getUnqual(CGM.getLLVMContext());
3340-
33413338
// Convert List to what ConstantArray needs.
33423339
SmallVector<llvm::Constant*, 8> UsedArray;
33433340
UsedArray.resize(List.size());
33443341
for (unsigned i = 0, e = List.size(); i != e; ++i) {
33453342
UsedArray[i] = llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(
3346-
cast<llvm::Constant>(&*List[i]), UnqualPtr);
3343+
cast<llvm::Constant>(&*List[i]),
3344+
CGM.getTarget().getTriple().isAMDGCN() ?
3345+
llvm::PointerType::getUnqual(CGM.getLLVMContext()) :
3346+
CGM.Int8PtrTy);
33473347
}
33483348

3349-
llvm::ArrayType *ATy = llvm::ArrayType::get(UnqualPtr, UsedArray.size());
3349+
if (UsedArray.empty())
3350+
return;
3351+
llvm::ArrayType *ATy = llvm::ArrayType::get(UsedArray.front()->getType(),
3352+
UsedArray.size());
33503353

33513354
auto *GV = new llvm::GlobalVariable(
33523355
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
@@ -2,6 +2,6 @@
22
// RUN: | FileCheck %s --check-prefix=CHECK
33
// CHECK: @llvm.embedded.module = private addrspace(1) constant [0 x i8] zeroinitializer, section ".llvmbc", align 1
44
// CHECK-NEXT: @llvm.cmdline = private addrspace(1) constant [{{[0-9]+}} x i8] c"{{.*}}", section ".llvmcmd", align 1
5-
// 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"
5+
// 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"
66

77
__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)