[lld] r267045 - Start adding support for internalizing shared libraries.
Davide Italiano via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 21 13:44:05 PDT 2016
On Thu, Apr 21, 2016 at 1:35 PM, Rafael Espindola via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: rafael
> Date: Thu Apr 21 15:35:25 2016
> New Revision: 267045
>
> URL: http://llvm.org/viewvc/llvm-project?rev=267045&view=rev
> Log:
> Start adding support for internalizing shared libraries.
>
> Modified:
> lld/trunk/ELF/LTO.cpp
> lld/trunk/ELF/Symbols.cpp
> lld/trunk/ELF/Symbols.h
> lld/trunk/ELF/Writer.cpp
> lld/trunk/test/ELF/lto/internalize-exportdyn.ll
>
> Modified: lld/trunk/ELF/LTO.cpp
> URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/LTO.cpp?rev=267045&r1=267044&r2=267045&view=diff
> ==============================================================================
> --- lld/trunk/ELF/LTO.cpp (original)
> +++ lld/trunk/ELF/LTO.cpp Thu Apr 21 15:35:25 2016
> @@ -74,6 +74,17 @@ static void runLTOPasses(Module &M, Targ
> saveBCFile(M, ".lto.opt.bc");
> }
>
> +static bool shouldInternalize(const SmallPtrSet<GlobalValue *, 8> &Used,
> + SymbolBody &B, GlobalValue *GV) {
> + if (B.isUsedInRegularObj())
> + return false;
> +
> + if (Used.count(GV))
> + return false;
> +
> + return !B.includeInDynsym();
> +}
> +
Thanks for splitting into this function.
I just noticed that gold never internalizes if it produces an lld,
maybe something that can be considered for a next patch.
--
Davide
"There are no solved problems; there are only problems that are more
or less solved" -- Henri Poincare
More information about the llvm-commits
mailing list