diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-04-28 22:26:19 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-04-28 22:26:19 +0000 |
commit | cf6d5a9f94a487ae11f96add92edc4878855f7cb (patch) | |
tree | 0240dae848caedc8347b8c253074241f675c3d68 /llvm/lib | |
parent | ddd40964f07769412be1916b4ce661027f14a3c6 (diff) | |
download | bcm5719-llvm-cf6d5a9f94a487ae11f96add92edc4878855f7cb.tar.gz bcm5719-llvm-cf6d5a9f94a487ae11f96add92edc4878855f7cb.zip |
Remove redundant temporary std::vector.
New sections are added to the end of the list, so the RelSections array was
redundant.
llvm-svn: 236053
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/MC/ELFObjectWriter.cpp | 32 |
1 files changed, 7 insertions, 25 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp index 185b66332be..201b1a40f39 100644 --- a/llvm/lib/MC/ELFObjectWriter.cpp +++ b/llvm/lib/MC/ELFObjectWriter.cpp @@ -239,8 +239,7 @@ class ELFObjectWriter : public MCObjectWriter { SectionIndexMapTy &SectionIndexMap, const RevGroupMapTy &RevGroupMap); - MCSectionData *createRelocationSection(MCAssembler &Asm, - const MCSectionData &SD); + void createRelocationSection(MCAssembler &Asm, const MCSectionData &SD); void CompressDebugSections(MCAssembler &Asm, MCAsmLayout &Layout); @@ -957,32 +956,16 @@ void ELFObjectWriter::maybeAddToGroup(MCAssembler &Asm, void ELFObjectWriter::computeIndexMap( MCAssembler &Asm, std::vector<const MCSectionELF *> &Sections, SectionIndexMapTy &SectionIndexMap, const RevGroupMapTy &RevGroupMap) { - std::vector<const MCSectionELF *> RelSections; for (const MCSectionData &SD : Asm) { const MCSectionELF &Section = static_cast<const MCSectionELF &>(SD.getSection()); - if (Section.getType() == ELF::SHT_GROUP || - Section.getType() == ELF::SHT_REL || - Section.getType() == ELF::SHT_RELA) + if (Section.getType() == ELF::SHT_GROUP) continue; Sections.push_back(&Section); unsigned Index = Sections.size(); SectionIndexMap[&Section] = Index; maybeAddToGroup(Asm, RevGroupMap, Section, Index); - - if (MCSectionData *RelSD = createRelocationSection(Asm, SD)) { - const MCSectionELF *RelSection = - static_cast<const MCSectionELF *>(&RelSD->getSection()); - RelSections.push_back(RelSection); - } - } - - // Put relocation sections close together. The linker reads them - // first, so this improves cache locality. - for (const MCSectionELF *Sec : RelSections) { - Sections.push_back(Sec); - unsigned Index = Sections.size(); - maybeAddToGroup(Asm, RevGroupMap, *Sec, Index); + createRelocationSection(Asm, SD); } } @@ -1131,11 +1114,10 @@ void ELFObjectWriter::computeSymbolTable( UndefinedSymbolData[i].SymbolData->setIndex(Index++); } -MCSectionData * -ELFObjectWriter::createRelocationSection(MCAssembler &Asm, - const MCSectionData &SD) { +void ELFObjectWriter::createRelocationSection(MCAssembler &Asm, + const MCSectionData &SD) { if (Relocations[&SD].empty()) - return nullptr; + return; MCContext &Ctx = Asm.getContext(); const MCSectionELF &Section = @@ -1158,7 +1140,7 @@ ELFObjectWriter::createRelocationSection(MCAssembler &Asm, const MCSectionELF *RelaSection = Ctx.createELFRelSection( RelaSectionName, hasRelocationAddend() ? ELF::SHT_RELA : ELF::SHT_REL, Flags, EntrySize, Section.getGroup(), &Section); - return &Asm.getOrCreateSectionData(*RelaSection); + Asm.getOrCreateSectionData(*RelaSection); } static SmallVector<char, 128> |