From 1efd4fd56b3bc21b85ab921c6f77807afc02ecb5 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Sun, 17 Jan 2010 07:46:39 +0000 Subject: [PATCH] Switch some functions to take Twines, eliminate uses of StringExtras.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93680 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/AsmPrinter.h | 10 ++++---- lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 33 ++++++++----------------- lib/CodeGen/AsmPrinter/DIE.cpp | 1 + lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 12 +++------ lib/CodeGen/AsmPrinter/DwarfPrinter.cpp | 6 +---- 5 files changed, 21 insertions(+), 41 deletions(-) diff --git a/include/llvm/CodeGen/AsmPrinter.h b/include/llvm/CodeGen/AsmPrinter.h index 0899c432a87..f327785c7cc 100644 --- a/include/llvm/CodeGen/AsmPrinter.h +++ b/include/llvm/CodeGen/AsmPrinter.h @@ -53,6 +53,7 @@ namespace llvm { class Mangler; class MCAsmInfo; class TargetLoweringObjectFile; + class Twine; class Type; class formatted_raw_ostream; @@ -262,14 +263,13 @@ namespace llvm { /// PrintHex - Print a value as a hexidecimal value. /// - void PrintHex(int Value) const; + void PrintHex(uint64_t Value) const; /// EOL - Print a newline character to asm stream. If a comment is present /// then it will be printed first. Comments should not contain '\n'. void EOL() const; - void EOL(const std::string &Comment) const; - void EOL(const char* Comment) const; - void EOL(const char *Comment, unsigned Encoding) const; + void EOL(const Twine &Comment) const; + void EOL(const Twine &Comment, unsigned Encoding) const; /// EmitULEB128Bytes - Emit an assembler byte data directive to compose an /// unsigned leb128 value. @@ -302,7 +302,7 @@ namespace llvm { void EmitString(const char *String, unsigned Size) const; /// EmitFile - Emit a .file directive. - void EmitFile(unsigned Number, const std::string &Name) const; + void EmitFile(unsigned Number, StringRef Name) const; //===------------------------------------------------------------------===// diff --git a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 78739bb2387..82c176546e3 100644 --- a/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -43,7 +43,6 @@ #include "llvm/Target/TargetRegisterInfo.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/SmallString.h" -#include "llvm/ADT/StringExtras.h" #include using namespace llvm; @@ -523,12 +522,11 @@ void AsmPrinter::EmitXXStructorList(Constant *List) { /// PrintULEB128 - Print a series of hexadecimal values (separated by commas) /// representing an unsigned leb128 value. void AsmPrinter::PrintULEB128(unsigned Value) const { - char Buffer[20]; do { unsigned char Byte = static_cast(Value & 0x7f); Value >>= 7; if (Value) Byte |= 0x80; - O << "0x" << utohex_buffer(Byte, Buffer+20); + PrintHex(Byte); if (Value) O << ", "; } while (Value); } @@ -538,14 +536,13 @@ void AsmPrinter::PrintULEB128(unsigned Value) const { void AsmPrinter::PrintSLEB128(int Value) const { int Sign = Value >> (8 * sizeof(Value) - 1); bool IsMore; - char Buffer[20]; do { unsigned char Byte = static_cast(Value & 0x7f); Value >>= 7; IsMore = Value != Sign || ((Byte ^ Sign) & 0x40) != 0; if (IsMore) Byte |= 0x80; - O << "0x" << utohex_buffer(Byte, Buffer+20); + PrintHex(Byte); if (IsMore) O << ", "; } while (IsMore); } @@ -556,9 +553,9 @@ void AsmPrinter::PrintSLEB128(int Value) const { /// PrintHex - Print a value as a hexadecimal value. /// -void AsmPrinter::PrintHex(int Value) const { - char Buffer[20]; - O << "0x" << utohex_buffer(static_cast(Value), Buffer+20); +void AsmPrinter::PrintHex(uint64_t Value) const { + O << "0x"; + O.write_hex(Value); } /// EOL - Print a newline character to asm stream. If a comment is present @@ -567,18 +564,8 @@ void AsmPrinter::EOL() const { O << '\n'; } -void AsmPrinter::EOL(const std::string &Comment) const { - if (VerboseAsm && !Comment.empty()) { - O.PadToColumn(MAI->getCommentColumn()); - O << MAI->getCommentString() - << ' ' - << Comment; - } - O << '\n'; -} - -void AsmPrinter::EOL(const char* Comment) const { - if (VerboseAsm && *Comment) { +void AsmPrinter::EOL(const Twine &Comment) const { + if (VerboseAsm && !Comment.isTriviallyEmpty()) { O.PadToColumn(MAI->getCommentColumn()); O << MAI->getCommentString() << ' ' @@ -624,8 +611,8 @@ static const char *DecodeDWARFEncoding(unsigned Encoding) { return 0; } -void AsmPrinter::EOL(const char *Comment, unsigned Encoding) const { - if (VerboseAsm && *Comment) { +void AsmPrinter::EOL(const Twine &Comment, unsigned Encoding) const { + if (VerboseAsm && !Comment.isTriviallyEmpty()) { O.PadToColumn(MAI->getCommentColumn()); O << MAI->getCommentString() << ' ' @@ -755,7 +742,7 @@ void AsmPrinter::EmitString(const char *String, unsigned Size) const { /// EmitFile - Emit a .file directive. -void AsmPrinter::EmitFile(unsigned Number, const std::string &Name) const { +void AsmPrinter::EmitFile(unsigned Number, StringRef Name) const { O << "\t.file\t" << Number << " \""; for (unsigned i = 0, N = Name.size(); i < N; ++i) printStringChar(O, Name[i]); diff --git a/lib/CodeGen/AsmPrinter/DIE.cpp b/lib/CodeGen/AsmPrinter/DIE.cpp index e740a56312e..ff7994ad051 100644 --- a/lib/CodeGen/AsmPrinter/DIE.cpp +++ b/lib/CodeGen/AsmPrinter/DIE.cpp @@ -13,6 +13,7 @@ #include "DIE.h" #include "DwarfPrinter.h" +#include "llvm/ADT/Twine.h" #include "llvm/CodeGen/AsmPrinter.h" #include "llvm/MC/MCAsmInfo.h" #include "llvm/MC/MCSymbol.h" diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 3b08e53f33f..33a62733ee0 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -2343,14 +2343,10 @@ void DwarfDebug::emitDIE(DIE *Die) { // Emit the code (index) for the abbreviation. Asm->EmitULEB128Bytes(AbbrevNumber); - if (Asm->isVerbose()) - Asm->EOL(std::string("Abbrev [" + - utostr(AbbrevNumber) + - "] 0x" + utohexstr(Die->getOffset()) + - ":0x" + utohexstr(Die->getSize()) + " " + - dwarf::TagString(Abbrev->getTag()))); - else - Asm->EOL(); + Asm->EOL("Abbrev [" + Twine(AbbrevNumber) + "] 0x" + + Twine::utohexstr(Die->getOffset()) + ":0x" + + Twine::utohexstr(Die->getSize()) + " " + + dwarf::TagString(Abbrev->getTag())); SmallVector &Values = Die->getValues(); const SmallVector &AbbrevData = Abbrev->getData(); diff --git a/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp b/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp index 73e833142fe..7aca41ed1e8 100644 --- a/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp @@ -24,7 +24,6 @@ #include "llvm/Target/TargetRegisterInfo.h" #include "llvm/Support/Dwarf.h" #include "llvm/Support/ErrorHandling.h" -#include "llvm/ADT/StringExtras.h" using namespace llvm; Dwarf::Dwarf(raw_ostream &OS, AsmPrinter *A, const MCAsmInfo *T, @@ -225,10 +224,7 @@ void Dwarf::EmitFrameMoves(const char *BaseLabel, unsigned BaseLabelID, Asm->EOL("Offset"); } else if (Reg < 64) { Asm->EmitInt8(dwarf::DW_CFA_offset + Reg); - if (Asm->isVerbose()) - Asm->EOL("DW_CFA_offset + Reg (" + utostr(Reg) + ")"); - else - Asm->EOL(); + Asm->EOL("DW_CFA_offset + Reg (" + Twine(Reg) + ")"); Asm->EmitULEB128Bytes(Offset); Asm->EOL("Offset"); } else {