[llvm] r236260 - Don't create a MCSectionData when we don't have to.

Rafael Espindola rafael.espindola at gmail.com
Thu Apr 30 14:10:06 PDT 2015


Author: rafael
Date: Thu Apr 30 16:10:06 2015
New Revision: 236260

URL: http://llvm.org/viewvc/llvm-project?rev=236260&view=rev
Log:
Don't create a MCSectionData when we don't have to.

Modified:
    llvm/trunk/lib/MC/ELFObjectWriter.cpp

Modified: llvm/trunk/lib/MC/ELFObjectWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/ELFObjectWriter.cpp?rev=236260&r1=236259&r2=236260&view=diff
==============================================================================
--- llvm/trunk/lib/MC/ELFObjectWriter.cpp (original)
+++ llvm/trunk/lib/MC/ELFObjectWriter.cpp Thu Apr 30 16:10:06 2015
@@ -226,8 +226,8 @@ class ELFObjectWriter : public MCObjectW
 
     void CompressDebugSections(MCAssembler &Asm, MCAsmLayout &Layout);
 
-    const MCSectionELF *createSectionHeaderStringTable(MCAssembler &Asm);
-    const MCSectionELF *createStringTable(MCAssembler &Asm);
+    const MCSectionELF *createSectionHeaderStringTable();
+    const MCSectionELF *createStringTable(MCContext &Ctx);
 
     void ExecutePostLayoutBinding(MCAssembler &Asm,
                                   const MCAsmLayout &Layout) override;
@@ -1308,20 +1308,16 @@ void ELFObjectWriter::writeRelocations(c
   }
 }
 
-const MCSectionELF *
-ELFObjectWriter::createSectionHeaderStringTable(MCAssembler &Asm) {
+const MCSectionELF *ELFObjectWriter::createSectionHeaderStringTable() {
   const MCSectionELF *ShstrtabSection = SectionTable[ShstrtabIndex - 1];
-  Asm.getOrCreateSectionData(*ShstrtabSection);
   ShStrTabBuilder.finalize(StringTableBuilder::ELF);
   OS << ShStrTabBuilder.data();
   return ShstrtabSection;
 }
 
-const MCSectionELF *ELFObjectWriter::createStringTable(MCAssembler &Asm) {
-  MCContext &Ctx = Asm.getContext();
+const MCSectionELF *ELFObjectWriter::createStringTable(MCContext &Ctx) {
   const MCSectionELF *StrtabSection =
       Ctx.getELFSection(".strtab", ELF::SHT_STRTAB, 0);
-  Asm.getOrCreateSectionData(*StrtabSection);
   StringTableIndex = addToSectionTable(StrtabSection);
   OS << StrTabBuilder.data();
   return StrtabSection;
@@ -1384,7 +1380,7 @@ void ELFObjectWriter::writeSectionHeader
     MCAssembler &Asm, const MCAsmLayout &Layout,
     const SectionIndexMapTy &SectionIndexMap,
     const SectionOffsetsTy &SectionOffsets) {
-  const unsigned NumSections = Asm.size();
+  const unsigned NumSections = SectionTable.size();
 
   // Null section first.
   uint64_t FirstSectionSize =
@@ -1497,14 +1493,14 @@ void ELFObjectWriter::WriteObject(MCAsse
 
   {
     uint64_t SecStart = OS.tell();
-    const MCSectionELF *Sec = createStringTable(Asm);
+    const MCSectionELF *Sec = createStringTable(Ctx);
     uint64_t SecEnd = OS.tell();
     SectionOffsets[Sec] = std::make_pair(SecStart, SecEnd);
   }
 
   {
     uint64_t SecStart = OS.tell();
-    const MCSectionELF *Sec = createSectionHeaderStringTable(Asm);
+    const MCSectionELF *Sec = createSectionHeaderStringTable();
     uint64_t SecEnd = OS.tell();
     SectionOffsets[Sec] = std::make_pair(SecStart, SecEnd);
   }





More information about the llvm-commits mailing list