[PATCH] D20290: [ThinLTO] Change ODR resolution and internalization to be index-based

Mehdi AMINI via llvm-commits llvm-commits at lists.llvm.org
Thu May 19 23:05:18 PDT 2016


joker.eph added a comment.

Not sure I totally figured, but here are two things to fix


================
Comment at: lib/LTO/ThinLTOCodeGenerator.cpp:387
@@ +386,3 @@
+      Linkage = GS->second->linkage();
+    return Linkage == GlobalValue::ExternalLinkage;
+  };
----------------
I think one thing is here it should be `return Linkage != GlobalValue::InternalLinkage;`

(but that's not enough to make the link passing) 

================
Comment at: lib/LTO/ThinLTOCodeGenerator.cpp:539
@@ +538,3 @@
+
+  auto isExported = [&](StringRef ModuleIdentifier, GlobalValue::GUID GUID) {
+    return ExportList.count(GUID) || GUIDPreservedSymbols.count(GUID);
----------------
ModuleIdentifier is ignored here, this is causing an issue for `thinLTOInternalizeAndPromoteInIndex`.

`thinLTOInternalizeAndPromoteInIndex` should not process the full index but only `DefinedGlobals`


http://reviews.llvm.org/D20290





More information about the llvm-commits mailing list