From 0ac75919e17e7cb7b9feefa324e73f6e89d2968d Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Fri, 27 Mar 2015 21:34:24 +0000 Subject: [PATCH] Add two small structs for readability in place of std::pair and std::tuple. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233422 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/MC/MCContext.h | 34 ++++++++++++++++++++++++++++++---- lib/MC/MCContext.cpp | 19 +++++++++---------- 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/include/llvm/MC/MCContext.h b/include/llvm/MC/MCContext.h index 064f471a02d..6f82d4f58ca 100644 --- a/include/llvm/MC/MCContext.h +++ b/include/llvm/MC/MCContext.h @@ -162,12 +162,38 @@ namespace llvm { /// The Compile Unit ID that we are currently processing. unsigned DwarfCompileUnitID; - typedef std::pair SectionGroupPair; - typedef std::tuple SectionGroupTriple; + struct ELFSectionKey { + std::string SectionName; + std::string GroupName; + ELFSectionKey(StringRef SectionName, StringRef GroupName) + : SectionName(SectionName), GroupName(GroupName) {} + bool operator<(const ELFSectionKey &Other) const { + if (SectionName < Other.SectionName) + return true; + return GroupName < Other.GroupName; + } + }; + + struct COFFSectionKey { + std::string SectionName; + std::string GroupName; + int SelectionKey; + COFFSectionKey(StringRef SectionName, StringRef GroupName, + int SelectionKey) + : SectionName(SectionName), GroupName(GroupName), + SelectionKey(SelectionKey) {} + bool operator<(const COFFSectionKey &Other) const { + if (SectionName < Other.SectionName) + return true; + if (GroupName < Other.GroupName) + return GroupName < Other.GroupName; + return SelectionKey < Other.SelectionKey; + } + }; StringMap MachOUniquingMap; - std::map ELFUniquingMap; - std::map COFFUniquingMap; + std::map ELFUniquingMap; + std::map COFFUniquingMap; /// Do automatic reset in destructor bool AutoReset; diff --git a/lib/MC/MCContext.cpp b/lib/MC/MCContext.cpp index 3cb3ea12afd..09de4ee05e6 100644 --- a/lib/MC/MCContext.cpp +++ b/lib/MC/MCContext.cpp @@ -268,11 +268,10 @@ void MCContext::renameELFSection(const MCSectionELF *Section, StringRef Name) { if (const MCSymbol *Group = Section->getGroup()) GroupName = Group->getName(); - ELFUniquingMap.erase(SectionGroupPair(Section->getSectionName(), GroupName)); - auto I = - ELFUniquingMap.insert(std::make_pair(SectionGroupPair(Name, GroupName), - Section)).first; - StringRef CachedName = I->first.first; + ELFUniquingMap.erase(ELFSectionKey{Section->getSectionName(), GroupName}); + auto I = ELFUniquingMap.insert(std::make_pair(ELFSectionKey{Name, GroupName}, + Section)).first; + StringRef CachedName = I->first.SectionName; const_cast(Section)->setSectionName(CachedName); } @@ -282,7 +281,7 @@ const MCSectionELF *MCContext::getELFSection(StringRef Section, unsigned Type, const char *BeginSymName) { // Do the lookup, if we have a hit, return it. auto IterBool = ELFUniquingMap.insert( - std::make_pair(SectionGroupPair(Section, Group), nullptr)); + std::make_pair(ELFSectionKey{Section, Group}, nullptr)); auto &Entry = *IterBool.first; if (!IterBool.second && !Unique) return Entry.second; @@ -291,7 +290,7 @@ const MCSectionELF *MCContext::getELFSection(StringRef Section, unsigned Type, if (!Group.empty()) GroupSym = GetOrCreateSymbol(Group); - StringRef CachedName = Entry.first.first; + StringRef CachedName = Entry.first.SectionName; SectionKind Kind; if (Flags & ELF::SHF_EXECINSTR) @@ -331,7 +330,7 @@ MCContext::getCOFFSection(StringRef Section, unsigned Characteristics, int Selection, const char *BeginSymName) { // Do the lookup, if we have a hit, return it. - SectionGroupTriple T(Section, COMDATSymName, Selection); + COFFSectionKey T{Section, COMDATSymName, Selection}; auto IterBool = COFFUniquingMap.insert(std::make_pair(T, nullptr)); auto Iter = IterBool.first; if (!IterBool.second) @@ -345,7 +344,7 @@ MCContext::getCOFFSection(StringRef Section, unsigned Characteristics, if (BeginSymName) Begin = createTempSymbol(BeginSymName, false); - StringRef CachedName = std::get<0>(Iter->first); + StringRef CachedName = Iter->first.SectionName; MCSectionCOFF *Result = new (*this) MCSectionCOFF( CachedName, Characteristics, COMDATSymbol, Selection, Kind, Begin); @@ -361,7 +360,7 @@ const MCSectionCOFF *MCContext::getCOFFSection(StringRef Section, } const MCSectionCOFF *MCContext::getCOFFSection(StringRef Section) { - SectionGroupTriple T(Section, "", 0); + COFFSectionKey T{Section, "", 0}; auto Iter = COFFUniquingMap.find(T); if (Iter == COFFUniquingMap.end()) return nullptr; -- 2.34.1