diff options
author | Paul C. Anagnostopoulos <paul@windfall.com> | 2020-11-24 13:09:02 -0500 |
---|---|---|
committer | Paul C. Anagnostopoulos <paul@windfall.com> | 2020-12-03 10:19:11 -0500 |
commit | 415fab6f67b4db59abe533130272d55b4efbf0cb (patch) | |
tree | 236fbadcc66076984340ae2c532d1f08618f4855 /llvm/lib/TableGen/TGParser.cpp | |
parent | 1365718778b4ce05587afa22835282c5d3f835b7 (diff) | |
download | llvm-415fab6f67b4db59abe533130272d55b4efbf0cb.zip llvm-415fab6f67b4db59abe533130272d55b4efbf0cb.tar.gz llvm-415fab6f67b4db59abe533130272d55b4efbf0cb.tar.bz2 |
[TableGen] Eliminate the 'code' type
Update the documentation.
Rework various backends that relied on the code type.
Differential Revision: https://reviews.llvm.org/D92269
Diffstat (limited to 'llvm/lib/TableGen/TGParser.cpp')
-rw-r--r-- | llvm/lib/TableGen/TGParser.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/TableGen/TGParser.cpp b/llvm/lib/TableGen/TGParser.cpp index 5c9cba5..2671d29 100644 --- a/llvm/lib/TableGen/TGParser.cpp +++ b/llvm/lib/TableGen/TGParser.cpp @@ -799,8 +799,8 @@ bool TGParser::ParseOptionalBitList(SmallVectorImpl<unsigned> &Ranges) { RecTy *TGParser::ParseType() { switch (Lex.getCode()) { default: TokError("Unknown token when expecting a type"); return nullptr; - case tgtok::String: Lex.Lex(); return StringRecTy::get(); - case tgtok::Code: Lex.Lex(); return CodeRecTy::get(); + case tgtok::String: + 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::Dag: Lex.Lex(); return DagRecTy::get(); @@ -1637,6 +1637,9 @@ RecTy *TGParser::ParseOperatorType() { return nullptr; } + if (Lex.getCode() == tgtok::Code) + TokError("the 'code' type is not allowed in bang operators; use 'string'"); + Type = ParseType(); if (!Type) { @@ -1920,7 +1923,7 @@ Init *TGParser::ParseSimpleValue(Record *CurRec, RecTy *ItemType, break; } case tgtok::CodeFragment: - R = CodeInit::get(Lex.getCurStrVal()); + R = StringInit::get(Lex.getCurStrVal(), StringInit::SF_Code); Lex.Lex(); break; case tgtok::question: |