MCDwarf: Simply MCDwarfFile since it really is just a StringRef and unsigned.
authorDavid Blaikie <dblaikie@gmail.com>
Thu, 13 Mar 2014 18:21:24 +0000 (18:21 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Thu, 13 Mar 2014 18:21:24 +0000 (18:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203827 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/MC/MCContext.h
include/llvm/MC/MCDwarf.h
lib/MC/MCContext.cpp
lib/MC/MCDwarf.cpp
lib/MC/MCParser/AsmParser.cpp

index 51e2d89ed1f2ef40b684167af00b12b21bfcfdad..cdd8f58bec4a5187ced15d6857f8c437dff324d2 100644 (file)
@@ -28,7 +28,7 @@ namespace llvm {
   class MCSection;
   class MCSymbol;
   class MCLabel;
-  class MCDwarfFile;
+  struct MCDwarfFile;
   class MCDwarfLoc;
   class MCObjectFileInfo;
   class MCRegisterInfo;
index 17476cf2b7f6662696762a1bf8295b1f5dafa644..7ad2ad0ff68d5d8aa02af9233952e62fb6eb72cf 100644 (file)
@@ -37,41 +37,15 @@ class SMLoc;
 /// and MCDwarfFile's are created and unique'd by the MCContext class where
 /// the file number for each is its index into the vector of DwarfFiles (note
 /// index 0 is not used and not a valid dwarf file number).
-class MCDwarfFile {
+struct MCDwarfFile {
   // Name - the base name of the file without its directory path.
   // The StringRef references memory allocated in the MCContext.
   StringRef Name;
 
   // DirIndex - the index into the list of directory names for this file name.
   unsigned DirIndex;
-
-private: // MCContext creates and uniques these.
-  friend class MCContext;
-  MCDwarfFile(StringRef name, unsigned dirIndex)
-      : Name(name), DirIndex(dirIndex) {}
-
-  MCDwarfFile(const MCDwarfFile &) LLVM_DELETED_FUNCTION;
-  void operator=(const MCDwarfFile &) LLVM_DELETED_FUNCTION;
-
-public:
-  /// getName - Get the base name of this MCDwarfFile.
-  StringRef getName() const { return Name; }
-
-  /// getDirIndex - Get the dirIndex of this MCDwarfFile.
-  unsigned getDirIndex() const { return DirIndex; }
-
-  /// print - Print the value to the stream \p OS.
-  void print(raw_ostream &OS) const;
-
-  /// dump - Print the value to stderr.
-  void dump() const;
 };
 
-inline raw_ostream &operator<<(raw_ostream &OS, const MCDwarfFile &DwarfFile) {
-  DwarfFile.print(OS);
-  return OS;
-}
-
 /// MCDwarfLoc - Instances of this class represent the information from a
 /// dwarf .loc directive.
 class MCDwarfLoc {
index 27f66d8393fe451f782385d71636d3aeaf58bc66..5ec5c35630c7f8f8feea576c895b9cd02d0802e9 100644 (file)
@@ -391,7 +391,9 @@ unsigned MCContext::GetDwarfFile(StringRef Directory, StringRef FileName,
   // vector.
   char *Buf = static_cast<char *>(Allocate(FileName.size()));
   memcpy(Buf, FileName.data(), FileName.size());
-  File = new (*this) MCDwarfFile(StringRef(Buf, FileName.size()), DirIndex);
+  File = new (*this) MCDwarfFile;
+  File->Name = StringRef(Buf, FileName.size());
+  File->DirIndex = DirIndex;
 
   // return the allocated FileNumber.
   return FileNumber;
index dc0601d0a612ee4b06ffc3784359671c1d01ea0c..d1e24fd65f06f937bcdc036967478b5ecf480062 100644 (file)
@@ -289,10 +289,10 @@ const MCSymbol *MCDwarfFileTable::EmitCU(MCStreamer *MCOS) const {
 
   // Second the file table.
   for (unsigned i = 1; i < MCDwarfFiles.size(); i++) {
-    MCOS->EmitBytes(MCDwarfFiles[i]->getName()); // FileName
+    MCOS->EmitBytes(MCDwarfFiles[i]->Name); // FileName
     MCOS->EmitBytes(StringRef("\0", 1)); // the null term. of the string
     // the Directory num
-    MCOS->EmitULEB128IntValue(MCDwarfFiles[i]->getDirIndex());
+    MCOS->EmitULEB128IntValue(MCDwarfFiles[i]->DirIndex);
     MCOS->EmitIntValue(0, 1); // last modification timestamp (always 0)
     MCOS->EmitIntValue(0, 1); // filesize (always 0)
   }
@@ -411,16 +411,6 @@ void MCDwarfLineAddr::Encode(MCContext &Context, int64_t LineDelta,
     OS << char(Temp);
 }
 
-void MCDwarfFile::print(raw_ostream &OS) const {
-  OS << '"' << getName() << '"';
-}
-
-#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
-void MCDwarfFile::dump() const {
-  print(dbgs());
-}
-#endif
-
 // Utility function to write a tuple for .debug_abbrev.
 static void EmitAbbrev(MCStreamer *MCOS, uint64_t Name, uint64_t Form) {
   MCOS->EmitULEB128IntValue(Name);
@@ -614,7 +604,7 @@ static void EmitGenDwarfInfo(MCStreamer *MCOS,
   }
   const SmallVectorImpl<MCDwarfFile *> &MCDwarfFiles =
     MCOS->getContext().getMCDwarfFiles();
-  MCOS->EmitBytes(MCDwarfFiles[1]->getName());
+  MCOS->EmitBytes(MCDwarfFiles[1]->Name);
   MCOS->EmitIntValue(0, 1); // NULL byte to terminate the string.
 
   // AT_comp_dir, the working directory the assembly was done in.
index db448ae8be2cb0137c3ccfa9297f4f5d7e9c7e49..889fb9dcb34985d5c0e11ac8c4e23dfa78c68aed 100644 (file)
@@ -1592,7 +1592,7 @@ bool AsmParser::parseStatement(ParseStatementInfo &Info) {
     const SmallVectorImpl<MCDwarfFile *> &MCDwarfFiles =
         getContext().getMCDwarfFiles();
     if (CppHashFilename.size() != 0) {
-      if (MCDwarfFiles[getContext().getGenDwarfFileNumber()]->getName() !=
+      if (MCDwarfFiles[getContext().getGenDwarfFileNumber()]->Name !=
           CppHashFilename)
         getStreamer().EmitDwarfFileDirective(
             getContext().nextGenDwarfFileNumber(), StringRef(),