diff options
| author | Fangrui Song <maskray@google.com> | 2019-03-17 13:53:42 +0000 |
|---|---|---|
| committer | Fangrui Song <maskray@google.com> | 2019-03-17 13:53:42 +0000 |
| commit | 6778b53e957a3216a60f30eabcd1a61fb8027e57 (patch) | |
| tree | 330ca0654a01f33e1b6a8b0d400a279946c6be1b | |
| parent | 997947961a078ea0bf5ec4c1593098eadc63c261 (diff) | |
| download | bcm5719-llvm-6778b53e957a3216a60f30eabcd1a61fb8027e57.tar.gz bcm5719-llvm-6778b53e957a3216a60f30eabcd1a61fb8027e57.zip | |
[ELF] De-virtualize findOrphanPos, excludeLibs and handleARMTlsRelocation
llvm-svn: 356331
| -rw-r--r-- | lld/ELF/Driver.cpp | 3 | ||||
| -rw-r--r-- | lld/ELF/Relocations.cpp | 3 | ||||
| -rw-r--r-- | lld/ELF/Writer.cpp | 3 |
3 files changed, 3 insertions, 6 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp index 6b1fc8e14b8..c36494debb3 100644 --- a/lld/ELF/Driver.cpp +++ b/lld/ELF/Driver.cpp @@ -1235,7 +1235,6 @@ static DenseSet<StringRef> getExcludeLibs(opt::InputArgList &Args) { // A special library name "ALL" means all archive files. // // This is not a popular option, but some programs such as bionic libc use it. -template <class ELFT> static void excludeLibs(opt::InputArgList &Args) { DenseSet<StringRef> Libs = getExcludeLibs(Args); bool All = Libs.count("ALL"); @@ -1555,7 +1554,7 @@ template <class ELFT> void LinkerDriver::link(opt::InputArgList &Args) { // Handle the -exclude-libs option. if (Args.hasArg(OPT_exclude_libs)) - excludeLibs<ELFT>(Args); + excludeLibs(Args); // Create ElfHeader early. We need a dummy section in // addReservedSymbols to mark the created symbols as not absolute. diff --git a/lld/ELF/Relocations.cpp b/lld/ELF/Relocations.cpp index cc8b6e743fc..ceb9a8b91cc 100644 --- a/lld/ELF/Relocations.cpp +++ b/lld/ELF/Relocations.cpp @@ -161,7 +161,6 @@ static unsigned handleMipsTlsRelocation(RelType Type, Symbol &Sym, // The pair of GOT entries created are of the form // GOT[e0] Module Index (Used to find pointer to TLS block at run-time) // GOT[e1] Offset of symbol in TLS block -template <class ELFT> static unsigned handleARMTlsRelocation(RelType Type, Symbol &Sym, InputSectionBase &C, uint64_t Offset, int64_t Addend, RelExpr Expr) { @@ -214,7 +213,7 @@ handleTlsRelocation(RelType Type, Symbol &Sym, InputSectionBase &C, return 0; if (Config->EMachine == EM_ARM) - return handleARMTlsRelocation<ELFT>(Type, Sym, C, Offset, Addend, Expr); + return handleARMTlsRelocation(Type, Sym, C, Offset, Addend, Expr); if (Config->EMachine == EM_MIPS) return handleMipsTlsRelocation(Type, Sym, C, Offset, Addend, Expr); diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index 8b53d378e20..2fdecaa7e7f 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -1042,7 +1042,6 @@ static bool shouldSkip(BaseCommand *Cmd) { // We want to place orphan sections so that they share as much // characteristics with their neighbors as possible. For example, if // both are rw, or both are tls. -template <typename ELFT> static std::vector<BaseCommand *>::iterator findOrphanPos(std::vector<BaseCommand *>::iterator B, std::vector<BaseCommand *>::iterator E) { @@ -1367,7 +1366,7 @@ template <class ELFT> void Writer<ELFT>::sortSections() { I = FirstSectionOrDotAssignment; while (NonScriptI != E) { - auto Pos = findOrphanPos<ELFT>(I, NonScriptI); + auto Pos = findOrphanPos(I, NonScriptI); OutputSection *Orphan = cast<OutputSection>(*NonScriptI); // As an optimization, find all sections with the same sort rank |

