Avoid one more walk over all sections. NFC.

Set the group section index as they are created.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236049 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2015-04-28 22:03:22 +00:00
parent 63ca5d6589
commit f75160b8d9

View File

@ -957,15 +957,6 @@ void ELFObjectWriter::maybeAddToGroup(MCAssembler &Asm,
void ELFObjectWriter::computeIndexMap(
MCAssembler &Asm, std::vector<const MCSectionELF *> &Sections,
SectionIndexMapTy &SectionIndexMap, const RevGroupMapTy &RevGroupMap) {
for (const MCSectionData &SD : Asm) {
const MCSectionELF &Section =
static_cast<const MCSectionELF &>(SD.getSection());
if (Section.getType() != ELF::SHT_GROUP)
continue;
Sections.push_back(&Section);
SectionIndexMap[&Section] = Sections.size();
}
std::vector<const MCSectionELF *> RelSections;
for (const MCSectionData &SD : Asm) {
const MCSectionELF &Section =
@ -1465,6 +1456,9 @@ void ELFObjectWriter::createIndexedSections(
const MCSectionELF *&Group = RevGroupMap[SignatureSymbol];
if (!Group) {
Group = Ctx.createELFGroupSection(SignatureSymbol);
Sections.push_back(Group);
SectionIndexMap[Group] = Sections.size();
MCSectionData &Data = Asm.getOrCreateSectionData(*Group);
Data.setAlignment(4);
MCDataFragment *F = new MCDataFragment(&Data);