We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 1d1b2e9 commit cf54259Copy full SHA for cf54259
llvm/lib/ProfileData/InstrProf.cpp
@@ -360,8 +360,13 @@ GlobalVariable *createPGOFuncNameVar(Module &M,
360
else if (Linkage == GlobalValue::AvailableExternallyLinkage)
361
Linkage = GlobalValue::LinkOnceODRLinkage;
362
else if (Linkage == GlobalValue::InternalLinkage ||
363
- Linkage == GlobalValue::ExternalLinkage)
364
- Linkage = GlobalValue::PrivateLinkage;
+ Linkage == GlobalValue::ExternalLinkage) {
+ // LDC: use internal instead of private linkage for COFF (still local, but
365
+ // allows for COMDATs on Windows)
366
+ Linkage = Triple(M.getTargetTriple()).isOSBinFormatCOFF()
367
+ ? GlobalValue::InternalLinkage
368
+ : GlobalValue::PrivateLinkage;
369
+ }
370
371
auto *Value =
372
ConstantDataArray::getString(M.getContext(), PGOFuncName, false);
0 commit comments