Skip to content

Commit 339c5d3

Browse files
committed
[GlobalOpt] Preserve Address Space when recreating GV
1 parent 65dd29b commit 339c5d3

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

llvm/lib/Transforms/IPO/GlobalOpt.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2144,9 +2144,10 @@ static void setUsedInitializer(GlobalVariable &V,
21442144

21452145
Module *M = V.getParent();
21462146
V.removeFromParent();
2147-
GlobalVariable *NV =
2148-
new GlobalVariable(*M, ATy, false, GlobalValue::AppendingLinkage,
2149-
ConstantArray::get(ATy, UsedArray), "");
2147+
GlobalVariable *NV = new GlobalVariable(
2148+
*M, ATy, false, GlobalValue::AppendingLinkage,
2149+
ConstantArray::get(ATy, UsedArray), "", nullptr,
2150+
GlobalVariable::NotThreadLocal, V.getType()->getAddressSpace());
21502151
NV->takeName(&V);
21512152
NV->setSection("llvm.metadata");
21522153
delete &V;

llvm/test/Transforms/GlobalOpt/global-opt-addrspace.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
@_ZM2C = internal addrspace(1) global %struct.FakeDeviceGlobal zeroinitializer, align 8
99
@_ZL1C = internal addrspace(1) global %struct.FakeDeviceGlobal zeroinitializer, align 8
1010

11-
@llvm.compiler.used = appending global [2 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZM2C to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZL1C to ptr addrspace(4))]
11+
@llvm.compiler.used = appending addrspace(1) global [2 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZM2C to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZL1C to ptr addrspace(4))]
1212

13-
; CHECK: @llvm.compiler.used = appending global [2 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZL1C to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZM2C to ptr addrspace(4))]
13+
; CHECK: @llvm.compiler.used = appending addrspace(1) global [2 x ptr addrspace(4)] [ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZL1C to ptr addrspace(4)), ptr addrspace(4) addrspacecast (ptr addrspace(1) @_ZM2C to ptr addrspace(4))]
1414

1515
define weak_odr dso_local void @foo() {
1616
entry:

0 commit comments

Comments
 (0)