diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-07-01 23:18:29 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-07-01 23:18:29 +0000 |
commit | 6547e406cf934346db7a206b61bcf09635afff0d (patch) | |
tree | 425e8b9b5d3952e58719f8341d8226569f69a734 /lib/CodeGen/DwarfWriter.cpp | |
parent | 4474c792c6ef21862dd166fd0de59d70c4c8d489 (diff) |
Avoid creating expensive comment string if it's not going to be printed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52992 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/DwarfWriter.cpp')
-rw-r--r-- | lib/CodeGen/DwarfWriter.cpp | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/lib/CodeGen/DwarfWriter.cpp b/lib/CodeGen/DwarfWriter.cpp index a33773904f..68ec6c49ac 100644 --- a/lib/CodeGen/DwarfWriter.cpp +++ b/lib/CodeGen/DwarfWriter.cpp @@ -2076,11 +2076,15 @@ private: // Emit the code (index) for the abbreviation. Asm->EmitULEB128Bytes(AbbrevNumber); - Asm->EOL(std::string("Abbrev [" + - utostr(AbbrevNumber) + - "] 0x" + utohexstr(Die->getOffset()) + - ":0x" + utohexstr(Die->getSize()) + " " + - TagString(Abbrev->getTag()))); + + if (VerboseAsm) + Asm->EOL(std::string("Abbrev [" + + utostr(AbbrevNumber) + + "] 0x" + utohexstr(Die->getOffset()) + + ":0x" + utohexstr(Die->getSize()) + " " + + TagString(Abbrev->getTag()))); + else + Asm->EOL(); SmallVector<DIEValue*, 32> &Values = Die->getValues(); const SmallVector<DIEAbbrevData, 8> &AbbrevData = Abbrev->getData(); @@ -2297,8 +2301,7 @@ private: Asm->EmitInt8(1); Asm->EOL("DW_LNS_fixed_advance_pc arg count"); const UniqueVector<std::string> &Directories = MMI->getDirectories(); - const UniqueVector<SourceFileInfo> - &SourceFiles = MMI->getSourceFiles(); + const UniqueVector<SourceFileInfo> &SourceFiles = MMI->getSourceFiles(); // Emit directories. for (unsigned DirectoryID = 1, NDID = Directories.size(); @@ -2328,8 +2331,11 @@ private: for (unsigned j = 0, M = SectionSourceLines.size(); j < M; ++j) { // Isolate current sections line info. const std::vector<SourceLineInfo> &LineInfos = SectionSourceLines[j]; - - Asm->EOL(std::string("Section ") + SectionMap[j + 1]); + + if (VerboseAsm) + Asm->EOL(std::string("Section ") + SectionMap[j + 1]); + else + Asm->EOL(); // Dwarf assumes we start with first line of first source file. unsigned Source = 1; @@ -2344,10 +2350,13 @@ private: unsigned SourceID = LineInfo.getSourceID(); const SourceFileInfo &SourceFile = SourceFiles[SourceID]; unsigned DirectoryID = SourceFile.getDirectoryID(); - Asm->EOL(Directories[DirectoryID] - + SourceFile.getName() - + ":" - + utostr_32(LineInfo.getLine())); + if (VerboseAsm) + Asm->EOL(Directories[DirectoryID] + + SourceFile.getName() + + ":" + + utostr_32(LineInfo.getLine())); + else + Asm->EOL(); // Define the line address. Asm->EmitInt8(0); Asm->EOL("Extended Op"); |