[PATCH] D19752: ELF: New symbol table design.
Rafael Ávila de Espíndola via llvm-commits
llvm-commits at lists.llvm.org
Sat Apr 30 12:44:27 PDT 2016
rafael added a comment.
I really like where this is going. I can also reproduce the speed improvements:
chromium
master 5.024864816
patch 4.623026768 0.92003007788
chromium fast
master 1.79596235
patch 1.674374543 0.932299356387
the gold plugin
master 0.380117134
patch 0.35906784 0.9446241905
clang
master 0.661575233
patch 0.623685952 0.942728688878
llvm-as
master 0.036052227
patch 0.034932404 0.968938867494
the gold plugin fsds
master 0.407010562
patch 0.384177885 0.943901512315
clang fsds
master 0.74843173
patch 0.704943104 0.941893663434
llvm-as fsds
master 0.032178185
patch 0.031151157 0.968083097291
scylla
master 4.159922688
patch 4.089454365 0.983060184459
================
Comment at: ELF/InputFiles.h:212
@@ -211,3 +212,1 @@
- llvm::MutableArrayRef<LazyArchive> getLazySymbols() { return LazySymbols; }
-
----------------
I am really happy to see these temporary vectors go. We now only have object local vector of symbols when something refers to them by index (relocations) :-)
================
Comment at: ELF/Symbols.h:427
@@ +426,3 @@
+ DefinedSynthetic<llvm::object::ELF64LE>, Undefined,
+ SharedSymbol<llvm::object::ELF64LE>, LazyArchive, LazyObject>
+ Body;
----------------
Using ELF64LE is here is problematic as the SharedSymbol has a pointer to Elf_Sym. As silly as it sounds I think you need to include the various ELFTs in the "union".
And can this be just a plain union?
http://reviews.llvm.org/D19752
More information about the llvm-commits
mailing list