Skip to content

Commit d3efed2

Browse files
committed
IRGen: use ApplyIRLinkage more aggressively (NFC)
Use `ApplyIRLinkage` rather than manually applying the DLLStorage. This makes it much more apparent as to the desired semantic linkage desired.
1 parent 02dfb50 commit d3efed2

File tree

3 files changed

+11
-14
lines changed

3 files changed

+11
-14
lines changed

lib/IRGen/GenDecl.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1410,9 +1410,8 @@ void IRGenModule::emitVTableStubs() {
14101410

14111411
if (F.getEffectiveSymbolLinkage() == SILLinkage::Hidden)
14121412
alias->setVisibility(llvm::GlobalValue::HiddenVisibility);
1413-
1414-
if (useDllStorage())
1415-
alias->setDLLStorageClass(llvm::GlobalValue::DLLExportStorageClass);
1413+
else
1414+
ApplyIRLinkage(IRLinkage::ExternalExport).to(alias);
14161415
}
14171416
}
14181417

lib/IRGen/GenFunc.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
#include "swift/AST/PrettyStackTrace.h"
7878
#include "swift/AST/SubstitutionMap.h"
7979
#include "swift/AST/Types.h"
80+
#include "swift/IRGen/Linking.h"
8081
#include "clang/AST/ASTContext.h"
8182
#include "clang/CodeGen/CodeGenABITypes.h"
8283
#include "llvm/IR/Constants.h"
@@ -1621,9 +1622,8 @@ void irgen::emitBlockHeader(IRGenFunction &IGF,
16211622
auto NSConcreteStackBlock =
16221623
IGF.IGM.getModule()->getOrInsertGlobal("_NSConcreteStackBlock",
16231624
IGF.IGM.ObjCClassStructTy);
1624-
if (IGF.IGM.useDllStorage())
1625-
cast<llvm::GlobalVariable>(NSConcreteStackBlock)
1626-
->setDLLStorageClass(llvm::GlobalValue::DLLImportStorageClass);
1625+
ApplyIRLinkage(IRLinkage::ExternalImport)
1626+
.to(cast<llvm::GlobalVariable>(NSConcreteStackBlock));
16271627

16281628
//
16291629
// Set the flags.

lib/IRGen/IRGenModule.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -659,8 +659,8 @@ IRGenModule::createStringConstant(StringRef Str,
659659
return NAME; \
660660
NAME = Module.getOrInsertGlobal(SYM, FullTypeMetadataStructTy); \
661661
if (useDllStorage() && !isStandardLibrary()) \
662-
cast<llvm::GlobalVariable>(NAME)->setDLLStorageClass( \
663-
llvm::GlobalValue::DLLImportStorageClass); \
662+
ApplyIRLinkage(IRLinkage::ExternalImport) \
663+
.to(cast<llvm::GlobalVariable>(NAME)); \
664664
return NAME; \
665665
}
666666

@@ -681,9 +681,8 @@ llvm::Constant *IRGenModule::getObjCEmptyCachePtr() {
681681
// struct objc_cache _objc_empty_cache;
682682
ObjCEmptyCachePtr = Module.getOrInsertGlobal("_objc_empty_cache",
683683
OpaquePtrTy->getElementType());
684-
if (useDllStorage())
685-
cast<llvm::GlobalVariable>(ObjCEmptyCachePtr)
686-
->setDLLStorageClass(llvm::GlobalValue::DLLImportStorageClass);
684+
ApplyIRLinkage(IRLinkage::ExternalImport)
685+
.to(cast<llvm::GlobalVariable>(ObjCEmptyCachePtr));
687686
} else {
688687
// FIXME: Remove even the null value per rdar://problem/18801263
689688
ObjCEmptyCachePtr = llvm::ConstantPointerNull::get(OpaquePtrTy);
@@ -714,9 +713,8 @@ Address IRGenModule::getAddrOfObjCISAMask() {
714713
assert(TargetInfo.hasISAMasking());
715714
if (!ObjCISAMaskPtr) {
716715
ObjCISAMaskPtr = Module.getOrInsertGlobal("swift_isaMask", IntPtrTy);
717-
if (useDllStorage())
718-
cast<llvm::GlobalVariable>(ObjCISAMaskPtr)
719-
->setDLLStorageClass(llvm::GlobalValue::DLLImportStorageClass);
716+
ApplyIRLinkage(IRLinkage::ExternalImport)
717+
.to(cast<llvm::GlobalVariable>(ObjCISAMaskPtr));
720718
}
721719
return Address(ObjCISAMaskPtr, getPointerAlignment());
722720
}

0 commit comments

Comments
 (0)