[lld] r281325 - Turn createKey into a static helper. NFC.
Rafael Espindola via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 13 05:25:31 PDT 2016
Author: rafael
Date: Tue Sep 13 07:25:30 2016
New Revision: 281325
URL: http://llvm.org/viewvc/llvm-project?rev=281325&view=rev
Log:
Turn createKey into a static helper. NFC.
Modified:
lld/trunk/ELF/OutputSections.cpp
lld/trunk/ELF/OutputSections.h
Modified: lld/trunk/ELF/OutputSections.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/OutputSections.cpp?rev=281325&r1=281324&r2=281325&view=diff
==============================================================================
--- lld/trunk/ELF/OutputSections.cpp (original)
+++ lld/trunk/ELF/OutputSections.cpp Tue Sep 13 07:25:30 2016
@@ -1831,6 +1831,24 @@ void MipsAbiFlagsOutputSection<ELFT>::ad
}
template <class ELFT>
+static SectionKey<ELFT::Is64Bits> createKey(InputSectionBase<ELFT> *C,
+ StringRef OutsecName) {
+ const typename ELFT::Shdr *H = C->getSectionHdr();
+ typedef typename ELFT::uint uintX_t;
+ uintX_t Flags = H->sh_flags & ~SHF_GROUP & ~SHF_COMPRESSED;
+
+ // For SHF_MERGE we create different output sections for each alignment.
+ // This makes each output section simple and keeps a single level mapping from
+ // input to output.
+ uintX_t Alignment = 0;
+ if (isa<MergeInputSection<ELFT>>(C))
+ Alignment = std::max(H->sh_addralign, H->sh_entsize);
+
+ uint32_t Type = H->sh_type;
+ return SectionKey<ELFT::Is64Bits>{OutsecName, Type, Flags, Alignment};
+}
+
+template <class ELFT>
std::pair<OutputSectionBase<ELFT> *, bool>
OutputSectionFactory<ELFT>::create(InputSectionBase<ELFT> *C,
StringRef OutsecName) {
@@ -1863,24 +1881,6 @@ OutputSectionFactory<ELFT>::create(Input
return {Sec, true};
}
-template <class ELFT>
-SectionKey<ELFT::Is64Bits>
-OutputSectionFactory<ELFT>::createKey(InputSectionBase<ELFT> *C,
- StringRef OutsecName) {
- const Elf_Shdr *H = C->getSectionHdr();
- uintX_t Flags = H->sh_flags & ~SHF_GROUP & ~SHF_COMPRESSED;
-
- // For SHF_MERGE we create different output sections for each alignment.
- // This makes each output section simple and keeps a single level mapping from
- // input to output.
- uintX_t Alignment = 0;
- if (isa<MergeInputSection<ELFT>>(C))
- Alignment = std::max(H->sh_addralign, H->sh_entsize);
-
- uint32_t Type = H->sh_type;
- return SectionKey<ELFT::Is64Bits>{OutsecName, Type, Flags, Alignment};
-}
-
template <bool Is64Bits>
typename lld::elf::SectionKey<Is64Bits>
DenseMapInfo<lld::elf::SectionKey<Is64Bits>>::getEmptyKey() {
Modified: lld/trunk/ELF/OutputSections.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/OutputSections.h?rev=281325&r1=281324&r2=281325&view=diff
==============================================================================
--- lld/trunk/ELF/OutputSections.h (original)
+++ lld/trunk/ELF/OutputSections.h Tue Sep 13 07:25:30 2016
@@ -805,8 +805,6 @@ public:
StringRef OutsecName);
private:
- Key createKey(InputSectionBase<ELFT> *C, StringRef OutsecName);
-
llvm::SmallDenseMap<Key, OutputSectionBase<ELFT> *> Map;
};
More information about the llvm-commits
mailing list