From: Rafael Espindola <rafael.espindola@gmail.com>
Date: Thu, 28 May 2015 20:25:29 +0000 (+0000)
Subject: Remove structure field that can be computed just before use.
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=c66c8e7730a2048c971f74a7650f586d3e6506f8;p=oota-llvm.git

Remove structure field that can be computed just before use.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238480 91177308-0d34-0410-b5e6-96231b3b80d8
---

diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp
index 958591b1266..56490c7ab13 100644
--- a/lib/MC/ELFObjectWriter.cpp
+++ b/lib/MC/ELFObjectWriter.cpp
@@ -79,7 +79,6 @@ class ELFObjectWriter : public MCObjectWriter {
     /// Helper struct for containing some precomputed information on symbols.
     struct ELFSymbolData {
       const MCSymbol *Symbol;
-      uint64_t StringIndex;
       uint32_t SectionIndex;
       StringRef Name;
 
@@ -171,8 +170,8 @@ class ELFObjectWriter : public MCObjectWriter {
 
     void writeHeader(const MCAssembler &Asm);
 
-    void WriteSymbol(SymbolTableWriter &Writer, ELFSymbolData &MSD,
-                     const MCAsmLayout &Layout);
+    void writeSymbol(SymbolTableWriter &Writer, uint32_t StringIndex,
+                     ELFSymbolData &MSD, const MCAsmLayout &Layout);
 
     // Start and end offset of each section
     typedef std::map<const MCSectionELF *, std::pair<uint64_t, uint64_t>>
@@ -451,7 +450,8 @@ static uint8_t mergeTypeForSet(uint8_t origType, uint8_t newType) {
   return Type;
 }
 
-void ELFObjectWriter::WriteSymbol(SymbolTableWriter &Writer, ELFSymbolData &MSD,
+void ELFObjectWriter::writeSymbol(SymbolTableWriter &Writer,
+                                  uint32_t StringIndex, ELFSymbolData &MSD,
                                   const MCAsmLayout &Layout) {
   MCSymbolData &OrigData = MSD.Symbol->getData();
   assert((!OrigData.getFragment() ||
@@ -494,8 +494,8 @@ void ELFObjectWriter::WriteSymbol(SymbolTableWriter &Writer, ELFSymbolData &MSD,
   }
 
   // Write out the symbol table entry
-  Writer.writeSymbol(MSD.StringIndex, Info, Value, Size, Other,
-                     MSD.SectionIndex, IsReserved);
+  Writer.writeSymbol(StringIndex, Info, Value, Size, Other, MSD.SectionIndex,
+                     IsReserved);
 }
 
 // It is always valid to create a relocation with a symbol. It is preferable
@@ -948,26 +948,27 @@ void ELFObjectWriter::computeSymbolTable(
   unsigned Index = FileNames.size() + 1;
 
   for (ELFSymbolData &MSD : LocalSymbolData) {
-    MSD.StringIndex = MCELF::GetType(MSD.Symbol->getData()) == ELF::STT_SECTION
-                          ? 0
-                          : StrTabBuilder.getOffset(MSD.Name);
+    unsigned StringIndex =
+        MCELF::GetType(MSD.Symbol->getData()) == ELF::STT_SECTION
+            ? 0
+            : StrTabBuilder.getOffset(MSD.Name);
     MSD.Symbol->setIndex(Index++);
-    WriteSymbol(Writer, MSD, Layout);
+    writeSymbol(Writer, StringIndex, MSD, Layout);
   }
 
   // Write the symbol table entries.
   LastLocalSymbolIndex = Index;
 
   for (ELFSymbolData &MSD : ExternalSymbolData) {
-    MSD.StringIndex = StrTabBuilder.getOffset(MSD.Name);
+    unsigned StringIndex = StrTabBuilder.getOffset(MSD.Name);
     MSD.Symbol->setIndex(Index++);
-    WriteSymbol(Writer, MSD, Layout);
+    writeSymbol(Writer, StringIndex, MSD, Layout);
     assert(MCELF::GetBinding(MSD.Symbol->getData()) != ELF::STB_LOCAL);
   }
   for (ELFSymbolData &MSD : UndefinedSymbolData) {
-    MSD.StringIndex = StrTabBuilder.getOffset(MSD.Name);
+    unsigned StringIndex = StrTabBuilder.getOffset(MSD.Name);
     MSD.Symbol->setIndex(Index++);
-    WriteSymbol(Writer, MSD, Layout);
+    writeSymbol(Writer, StringIndex, MSD, Layout);
     assert(MCELF::GetBinding(MSD.Symbol->getData()) != ELF::STB_LOCAL);
   }