diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-01-13 03:38:34 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-01-13 03:38:34 +0000 |
commit | 8dd6f0c8353f80de6526810899f271d539f6929c (patch) | |
tree | 0d369ea673fc3ed4d893afbf157f6871a6fa1b55 /lib/TableGen | |
parent | ebaf92c67dac4974f98a08f8096d3eb2f4edd09d (diff) | |
download | llvm-8dd6f0c8353f80de6526810899f271d539f6929c.tar.gz llvm-8dd6f0c8353f80de6526810899f271d539f6929c.tar.bz2 llvm-8dd6f0c8353f80de6526810899f271d539f6929c.tar.xz |
Delete CodeInit and CodeRecTy from TableGen.
The code type was always identical to a string anyway. Now it is simply
a synonym. The code literal syntax [{...}] is still valid.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148092 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/TableGen')
-rw-r--r-- | lib/TableGen/Record.cpp | 30 | ||||
-rw-r--r-- | lib/TableGen/TGParser.cpp | 6 |
2 files changed, 3 insertions, 33 deletions
diff --git a/lib/TableGen/Record.cpp b/lib/TableGen/Record.cpp index d328d893fd..25ff062907 100644 --- a/lib/TableGen/Record.cpp +++ b/lib/TableGen/Record.cpp @@ -78,7 +78,6 @@ template<> struct DenseMapInfo<TableGenStringKey> { BitRecTy BitRecTy::Shared; IntRecTy IntRecTy::Shared; StringRecTy StringRecTy::Shared; -CodeRecTy CodeRecTy::Shared; DagRecTy DagRecTy::Shared; void RecTy::anchor() { } @@ -316,12 +315,6 @@ Init *ListRecTy::convertValue(TypedInit *TI) { return 0; } -Init *CodeRecTy::convertValue(TypedInit *TI) { - if (TI->getType()->typeIsConvertibleTo(this)) - return TI; - return 0; -} - Init *DagRecTy::convertValue(TypedInit *TI) { if (TI->getType()->typeIsConvertibleTo(this)) return TI; @@ -582,17 +575,6 @@ StringInit *StringInit::get(StringRef V) { return I; } -void CodeInit::anchor() { } - -CodeInit *CodeInit::get(StringRef V) { - typedef StringMap<CodeInit *> Pool; - static Pool ThePool; - - CodeInit *&I = ThePool[V]; - if (!I) I = new CodeInit(V); - return I; -} - static void ProfileListInit(FoldingSetNodeID &ID, ArrayRef<Init *> Range, RecTy *EltTy) { @@ -1993,18 +1975,6 @@ DagInit *Record::getValueAsDag(StringRef FieldName) const { "' does not have a dag initializer!"; } -std::string Record::getValueAsCode(StringRef FieldName) const { - const RecordVal *R = getValue(FieldName); - if (R == 0 || R->getValue() == 0) - throw "Record `" + getName() + "' does not have a field named `" + - FieldName.str() + "'!\n"; - - if (CodeInit *CI = dynamic_cast<CodeInit*>(R->getValue())) - return CI->getValue(); - throw "Record `" + getName() + "', field `" + FieldName.str() + - "' does not have a code initializer!"; -} - void MultiClass::dump() const { errs() << "Record:\n"; diff --git a/lib/TableGen/TGParser.cpp b/lib/TableGen/TGParser.cpp index 5c13af18c6..81c68292f1 100644 --- a/lib/TableGen/TGParser.cpp +++ b/lib/TableGen/TGParser.cpp @@ -595,11 +595,11 @@ bool TGParser::ParseOptionalBitList(std::vector<unsigned> &Ranges) { /// ParseType - Parse and return a tblgen type. This returns null on error. /// /// Type ::= STRING // string type +/// Type ::= CODE // code type /// Type ::= BIT // bit type /// Type ::= BITS '<' INTVAL '>' // bits<x> type /// Type ::= INT // int type /// Type ::= LIST '<' Type '>' // list<x> type -/// Type ::= CODE // code type /// Type ::= DAG // dag type /// Type ::= ClassID // Record Type /// @@ -607,9 +607,9 @@ RecTy *TGParser::ParseType() { switch (Lex.getCode()) { default: TokError("Unknown token when expecting a type"); return 0; case tgtok::String: Lex.Lex(); return StringRecTy::get(); + case tgtok::Code: Lex.Lex(); return StringRecTy::get(); case tgtok::Bit: Lex.Lex(); return BitRecTy::get(); case tgtok::Int: Lex.Lex(); return IntRecTy::get(); - case tgtok::Code: Lex.Lex(); return CodeRecTy::get(); case tgtok::Dag: Lex.Lex(); return DagRecTy::get(); case tgtok::Id: if (Record *R = ParseClassID()) return RecordRecTy::get(R); @@ -1104,7 +1104,7 @@ Init *TGParser::ParseSimpleValue(Record *CurRec, RecTy *ItemType, break; } case tgtok::CodeFragment: - R = CodeInit::get(Lex.getCurStrVal()); + R = StringInit::get(Lex.getCurStrVal()); Lex.Lex(); break; case tgtok::question: |