Add an !eq() operator to TableGen.  It operates on strings only.
Use !cast<string>() to compare other types of objects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92754 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/TGParser.cpp b/utils/TableGen/TGParser.cpp
index b095a6c..8c158e0 100644
--- a/utils/TableGen/TGParser.cpp
+++ b/utils/TableGen/TGParser.cpp
@@ -792,6 +792,7 @@
   case tgtok::XSRA:
   case tgtok::XSRL:
   case tgtok::XSHL:
+  case tgtok::XEq:
   case tgtok::XStrConcat:
   case tgtok::XNameConcat: {  // Value ::= !binop '(' Value ',' Value ')'
     BinOpInit::BinaryOp Code;
@@ -820,6 +821,11 @@
       Code = BinOpInit::SHL;
       Type = new IntRecTy();
       break;
+    case tgtok::XEq:  
+      Lex.Lex();  // eat the operation
+      Code = BinOpInit::EQ;
+      Type = new IntRecTy();
+      break;
     case tgtok::XStrConcat:
       Lex.Lex();  // eat the operation
       Code = BinOpInit::STRCONCAT;
@@ -1257,6 +1263,7 @@
   case tgtok::XSRA:
   case tgtok::XSRL:
   case tgtok::XSHL:
+  case tgtok::XEq:
   case tgtok::XStrConcat:
   case tgtok::XNameConcat:  // Value ::= !binop '(' Value ',' Value ')'
   case tgtok::XIf: