From: David Blaikie Date: Thu, 13 Mar 2014 18:21:24 +0000 (+0000) Subject: MCDwarf: Simply MCDwarfFile since it really is just a StringRef and unsigned. X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=4ad41871eba4ec8bfe5a967f596b85814fa5fe4b MCDwarf: Simply MCDwarfFile since it really is just a StringRef and unsigned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203827 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/MC/MCContext.h b/include/llvm/MC/MCContext.h index 51e2d89ed1f..cdd8f58bec4 100644 --- a/include/llvm/MC/MCContext.h +++ b/include/llvm/MC/MCContext.h @@ -28,7 +28,7 @@ namespace llvm { class MCSection; class MCSymbol; class MCLabel; - class MCDwarfFile; + struct MCDwarfFile; class MCDwarfLoc; class MCObjectFileInfo; class MCRegisterInfo; diff --git a/include/llvm/MC/MCDwarf.h b/include/llvm/MC/MCDwarf.h index 17476cf2b7f..7ad2ad0ff68 100644 --- a/include/llvm/MC/MCDwarf.h +++ b/include/llvm/MC/MCDwarf.h @@ -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 { diff --git a/lib/MC/MCContext.cpp b/lib/MC/MCContext.cpp index 27f66d8393f..5ec5c35630c 100644 --- a/lib/MC/MCContext.cpp +++ b/lib/MC/MCContext.cpp @@ -391,7 +391,9 @@ unsigned MCContext::GetDwarfFile(StringRef Directory, StringRef FileName, // vector. char *Buf = static_cast(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; diff --git a/lib/MC/MCDwarf.cpp b/lib/MC/MCDwarf.cpp index dc0601d0a61..d1e24fd65f0 100644 --- a/lib/MC/MCDwarf.cpp +++ b/lib/MC/MCDwarf.cpp @@ -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 &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. diff --git a/lib/MC/MCParser/AsmParser.cpp b/lib/MC/MCParser/AsmParser.cpp index db448ae8be2..889fb9dcb34 100644 --- a/lib/MC/MCParser/AsmParser.cpp +++ b/lib/MC/MCParser/AsmParser.cpp @@ -1592,7 +1592,7 @@ bool AsmParser::parseStatement(ParseStatementInfo &Info) { const SmallVectorImpl &MCDwarfFiles = getContext().getMCDwarfFiles(); if (CppHashFilename.size() != 0) { - if (MCDwarfFiles[getContext().getGenDwarfFileNumber()]->getName() != + if (MCDwarfFiles[getContext().getGenDwarfFileNumber()]->Name != CppHashFilename) getStreamer().EmitDwarfFileDirective( getContext().nextGenDwarfFileNumber(), StringRef(),