[PATCH] D69361: [IRMover] Set Address Space for moved global values
Ehud Katz via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 29 00:21:34 PDT 2019
ekatz updated this revision to Diff 226845.
ekatz edited the summary of this revision.
ekatz added a comment.
Added `alias` testing, and moved the NFC part into https://reviews.llvm.org/D69550.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69361/new/
https://reviews.llvm.org/D69361
Files:
llvm/lib/Linker/IRMover.cpp
llvm/test/Linker/addrspace.ll
Index: llvm/test/Linker/addrspace.ll
===================================================================
--- /dev/null
+++ llvm/test/Linker/addrspace.ll
@@ -0,0 +1,12 @@
+; RUN: llvm-link %s -S | FileCheck %s
+
+ at G = addrspace(2) global i32 256
+; CHECK: @G = addrspace(2) global i32
+
+ at GA = alias i32, i32 addrspace(2)* @G
+; CHECK: @GA = alias i32, i32 addrspace(2)* @G
+
+define void @foo() addrspace(3) {
+; CHECK: define void @foo() addrspace(3)
+ ret void
+}
Index: llvm/lib/Linker/IRMover.cpp
===================================================================
--- llvm/lib/Linker/IRMover.cpp
+++ llvm/lib/Linker/IRMover.cpp
@@ -654,9 +654,9 @@
Function *IRLinker::copyFunctionProto(const Function *SF) {
// If there is no linkage to be performed or we are linking from the source,
// bring SF over.
- auto *F =
- Function::Create(TypeMap.get(SF->getFunctionType()),
- GlobalValue::ExternalLinkage, SF->getName(), &DstM);
+ auto *F = Function::Create(TypeMap.get(SF->getFunctionType()),
+ GlobalValue::ExternalLinkage,
+ SF->getAddressSpace(), SF->getName(), &DstM);
F->copyAttributesFrom(SF);
F->setAttributes(mapAttributeTypes(F->getContext(), F->getAttributes()));
return F;
@@ -695,7 +695,8 @@
else if (SGV->getValueType()->isFunctionTy())
NewGV =
Function::Create(cast<FunctionType>(TypeMap.get(SGV->getValueType())),
- GlobalValue::ExternalLinkage, SGV->getName(), &DstM);
+ GlobalValue::ExternalLinkage, SGV->getAddressSpace(),
+ SGV->getName(), &DstM);
else
NewGV = new GlobalVariable(
DstM, TypeMap.get(SGV->getValueType()),
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D69361.226845.patch
Type: text/x-patch
Size: 1769 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191029/57a0ea5e/attachment.bin>
More information about the llvm-commits
mailing list