diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2018-01-30 16:24:04 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2018-01-30 16:24:04 +0000 |
| commit | c7945c827d55550b153df65ba7070c41e1e91b90 (patch) | |
| tree | 2c46f46626b3d7b7e5c316a6a00d767317951aeb | |
| parent | 22d533568bf70d533d67dfcddb6951732c9c8671 (diff) | |
| download | bcm5719-llvm-c7945c827d55550b153df65ba7070c41e1e91b90.tar.gz bcm5719-llvm-c7945c827d55550b153df65ba7070c41e1e91b90.zip | |
Move function to the file where it is used.
llvm-svn: 323780
| -rw-r--r-- | lld/ELF/InputSection.cpp | 26 | ||||
| -rw-r--r-- | lld/ELF/InputSection.h | 4 | ||||
| -rw-r--r-- | lld/ELF/Writer.cpp | 27 |
3 files changed, 27 insertions, 30 deletions
diff --git a/lld/ELF/InputSection.cpp b/lld/ELF/InputSection.cpp index 260dddf7441..fccfe500969 100644 --- a/lld/ELF/InputSection.cpp +++ b/lld/ELF/InputSection.cpp @@ -45,32 +45,6 @@ std::string lld::toString(const InputSectionBase *Sec) { return (toString(Sec->File) + ":(" + Sec->Name + ")").str(); } -DenseMap<SectionBase *, int> elf::buildSectionOrder() { - DenseMap<SectionBase *, int> SectionOrder; - if (Config->SymbolOrderingFile.empty()) - return SectionOrder; - - // Build a map from symbols to their priorities. Symbols that didn't - // appear in the symbol ordering file have the lowest priority 0. - // All explicitly mentioned symbols have negative (higher) priorities. - DenseMap<StringRef, int> SymbolOrder; - int Priority = -Config->SymbolOrderingFile.size(); - for (StringRef S : Config->SymbolOrderingFile) - SymbolOrder.insert({S, Priority++}); - - // Build a map from sections to their priorities. - for (InputFile *File : ObjectFiles) { - for (Symbol *Sym : File->getSymbols()) { - auto *D = dyn_cast<Defined>(Sym); - if (!D || !D->Section) - continue; - int &Priority = SectionOrder[D->Section]; - Priority = std::min(Priority, SymbolOrder.lookup(D->getName())); - } - } - return SectionOrder; -} - template <class ELFT> static ArrayRef<uint8_t> getSectionContents(ObjFile<ELFT> &File, const typename ELFT::Shdr &Hdr) { diff --git a/lld/ELF/InputSection.h b/lld/ELF/InputSection.h index 8c114ae7194..7c0c611cb0e 100644 --- a/lld/ELF/InputSection.h +++ b/lld/ELF/InputSection.h @@ -342,10 +342,6 @@ private: // The list of all input sections. extern std::vector<InputSectionBase *> InputSections; - -// Builds section order for handling --symbol-ordering-file. -llvm::DenseMap<SectionBase *, int> buildSectionOrder(); - } // namespace elf std::string toString(const elf::InputSectionBase *); diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index d8cfd9d10da..6797f719bd8 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -1017,6 +1017,33 @@ findOrphanPos(std::vector<BaseCommand *>::iterator B, return I; } +// Builds section order for handling --symbol-ordering-file. +static DenseMap<SectionBase *, int> buildSectionOrder() { + DenseMap<SectionBase *, int> SectionOrder; + if (Config->SymbolOrderingFile.empty()) + return SectionOrder; + + // Build a map from symbols to their priorities. Symbols that didn't + // appear in the symbol ordering file have the lowest priority 0. + // All explicitly mentioned symbols have negative (higher) priorities. + DenseMap<StringRef, int> SymbolOrder; + int Priority = -Config->SymbolOrderingFile.size(); + for (StringRef S : Config->SymbolOrderingFile) + SymbolOrder.insert({S, Priority++}); + + // Build a map from sections to their priorities. + for (InputFile *File : ObjectFiles) { + for (Symbol *Sym : File->getSymbols()) { + auto *D = dyn_cast<Defined>(Sym); + if (!D || !D->Section) + continue; + int &Priority = SectionOrder[D->Section]; + Priority = std::min(Priority, SymbolOrder.lookup(D->getName())); + } + } + return SectionOrder; +} + // If no layout was provided by linker script, we want to apply default // sorting for special input sections. This also handles --symbol-ordering-file. template <class ELFT> void Writer<ELFT>::sortInputSections() { |

