Switch some functions to take Twines, eliminate uses of StringExtras.h.
authorBenjamin Kramer <benny.kra@googlemail.com>
Sun, 17 Jan 2010 07:46:39 +0000 (07:46 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Sun, 17 Jan 2010 07:46:39 +0000 (07:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93680 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/AsmPrinter.h
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
lib/CodeGen/AsmPrinter/DIE.cpp
lib/CodeGen/AsmPrinter/DwarfDebug.cpp
lib/CodeGen/AsmPrinter/DwarfPrinter.cpp

index 0899c432a87d58dba0eb8d7ece3e73a4064e230b..f327785c7cc33c4cb27748d3af1ccd2f56db7fd6 100644 (file)
@@ -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;
 
     //===------------------------------------------------------------------===//
 
index 78739bb23874ba61ee2f8f67b3b708b2f2782c35..82c176546e3739886b7d5bd1f43d43276127c198 100644 (file)
@@ -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 <cerrno>
 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<unsigned char>(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<unsigned char>(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<unsigned>(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]);
index e740a56312e962cdd8555bfd8a592b4260d83f2c..ff7994ad051d53bd5cef04bea03d14871eff4b0c 100644 (file)
@@ -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"
index 3b08e53f33f9d560f420c5649be1c52151af658c..33a62733ee05c779a1798b9007a2fea3537a7ae9 100644 (file)
@@ -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<DIEValue*, 32> &Values = Die->getValues();
   const SmallVector<DIEAbbrevData, 8> &AbbrevData = Abbrev->getData();
index 73e833142fed87d26d56ba873fd98d4fd2c9dda2..7aca41ed1e86e0366d4aed4c615c8bbcb75f3f7f 100644 (file)
@@ -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 {