[PATCH] D18415: [LTO] Basic support for internalize.

Davide Italiano via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 24 13:10:19 PDT 2016

davide marked 4 inline comments as done.
davide added a comment.

Oh, the testcase was there before (just didn't show up in my last rev, weird).
Addressing some of your comments + reply.

Comment at: ELF/LTO.cpp:113
@@ +112,3 @@
+          // symbols when creating a shared library.
+          if (!Config->Shared && !Used.count(GV) && !B->isUsedInRegularObj())
+            InternalizedSyms.insert(GV->getName());
rafael wrote:
> ExportDynamic should have the same treatment as shared. Not sure if we already have a convenient predicate for either.
Can I do this separately? (And add a specific test for it)

Comment at: ELF/SymbolTable.cpp:221
@@ +220,3 @@
+  if (auto *BC = dyn_cast<DefinedBitcode>(Existing))
+    if (auto *U = dyn_cast<Undefined>(New))
+      BC->setUsedInRegularObj();
rafael wrote:
> I am not sure just Undefined is sufficient.
> If a weak symbol in an object file is replaced with a strong symbol in a .bc file, there can be a reference from the strong symbol to the bit code one.
Can I do this separately?


More information about the llvm-commits mailing list