[llvm-commits] [llvm] r44257 - in /llvm/trunk/utils/TableGen: Record.cpp Record.h

Chris Lattner sabre at nondot.org
Tue Nov 20 14:25:16 PST 2007


Author: lattner
Date: Tue Nov 20 16:25:16 2007
New Revision: 44257

URL: http://llvm.org/viewvc/llvm-project?rev=44257&view=rev
Log:
Add the ability to convert a tblgen type to a string.

Modified:
    llvm/trunk/utils/TableGen/Record.cpp
    llvm/trunk/utils/TableGen/Record.h

Modified: llvm/trunk/utils/TableGen/Record.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/Record.cpp?rev=44257&r1=44256&r2=44257&view=diff

==============================================================================
--- llvm/trunk/utils/TableGen/Record.cpp (original)
+++ llvm/trunk/utils/TableGen/Record.cpp Tue Nov 20 16:25:16 2007
@@ -14,6 +14,7 @@
 #include "Record.h"
 #include "llvm/Support/DataTypes.h"
 #include "llvm/Support/Streams.h"
+#include "llvm/ADT/StringExtras.h"
 #include <ios>
 
 using namespace llvm;
@@ -46,6 +47,10 @@
   return 0;
 }
 
+std::string BitsRecTy::getAsString() const {
+  return "bits<" + utostr(Size) + ">";
+}
+
 Init *BitsRecTy::convertValue(UnsetInit *UI) {
   BitsInit *Ret = new BitsInit(Size);
 
@@ -146,6 +151,10 @@
   return 0;
 }
 
+std::string ListRecTy::getAsString() const {
+  return "list<" + Ty->getAsString() + ">";
+}
+
 void ListRecTy::print(std::ostream &OS) const {
   OS << "list<" << *Ty << ">";
 }
@@ -196,6 +205,9 @@
   return 0;
 }
 
+std::string RecordRecTy::getAsString() const {
+  return Rec->getName();
+}
 
 void RecordRecTy::print(std::ostream &OS) const {
   OS << Rec->getName();

Modified: llvm/trunk/utils/TableGen/Record.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/Record.h?rev=44257&r1=44256&r2=44257&view=diff

==============================================================================
--- llvm/trunk/utils/TableGen/Record.h (original)
+++ llvm/trunk/utils/TableGen/Record.h Tue Nov 20 16:25:16 2007
@@ -62,6 +62,7 @@
 struct RecTy {
   virtual ~RecTy() {}
 
+  virtual std::string getAsString() const = 0;
   virtual void print(std::ostream &OS) const = 0;
   void dump() const;
 
@@ -127,6 +128,7 @@
   virtual Init *convertValue(   VarInit *VI) { return RecTy::convertValue(VI);}
   virtual Init *convertValue( FieldInit *FI) { return RecTy::convertValue(FI);}
 
+  std::string getAsString() const { return "bit"; }
   void print(std::ostream &OS) const { OS << "bit"; }
 
   bool typeIsConvertibleTo(const RecTy *RHS) const {
@@ -169,7 +171,7 @@
   virtual Init *convertValue(   VarInit *VI) { return RecTy::convertValue(VI);}
   virtual Init *convertValue( FieldInit *FI) { return RecTy::convertValue(FI);}
 
-
+  std::string getAsString() const;
   void print(std::ostream &OS) const { OS << "bits<" << Size << ">"; }
 
   bool typeIsConvertibleTo(const RecTy *RHS) const {
@@ -208,7 +210,7 @@
   virtual Init *convertValue(   VarInit *VI) { return RecTy::convertValue(VI);}
   virtual Init *convertValue( FieldInit *FI) { return RecTy::convertValue(FI);}
 
-
+  std::string getAsString() const { return "int"; }
   void print(std::ostream &OS) const { OS << "int"; }
 
   bool typeIsConvertibleTo(const RecTy *RHS) const {
@@ -245,6 +247,7 @@
   virtual Init *convertValue(   VarInit *VI) { return RecTy::convertValue(VI);}
   virtual Init *convertValue( FieldInit *FI) { return RecTy::convertValue(FI);}
 
+  std::string getAsString() const { return "string"; }
   void print(std::ostream &OS) const { OS << "string"; }
 
   bool typeIsConvertibleTo(const RecTy *RHS) const {
@@ -288,6 +291,7 @@
   virtual Init *convertValue(   VarInit *VI) { return RecTy::convertValue(VI);}
   virtual Init *convertValue( FieldInit *FI) { return RecTy::convertValue(FI);}
 
+  std::string getAsString() const;
   void print(std::ostream &OS) const;
 
   bool typeIsConvertibleTo(const RecTy *RHS) const {
@@ -325,7 +329,7 @@
   virtual Init *convertValue(   VarInit *VI) { return RecTy::convertValue(VI);}
   virtual Init *convertValue( FieldInit *FI) { return RecTy::convertValue(FI);}
 
-
+  std::string getAsString() const { return "code"; }
   void print(std::ostream &OS) const { OS << "code"; }
 
   bool typeIsConvertibleTo(const RecTy *RHS) const {
@@ -360,6 +364,7 @@
   virtual Init *convertValue(   VarInit *VI) { return RecTy::convertValue(VI);}
   virtual Init *convertValue( FieldInit *FI) { return RecTy::convertValue(FI);}
 
+  std::string getAsString() const { return "dag"; }
   void print(std::ostream &OS) const { OS << "dag"; }
 
   bool typeIsConvertibleTo(const RecTy *RHS) const {
@@ -402,6 +407,7 @@
   virtual Init *convertValue(   VarInit *VI) { return RecTy::convertValue(VI);}
   virtual Init *convertValue( FieldInit *FI) { return RecTy::convertValue(FI);}
 
+  std::string getAsString() const;
   void print(std::ostream &OS) const;
 
   bool typeIsConvertibleTo(const RecTy *RHS) const {





More information about the llvm-commits mailing list