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 { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits