Add support for a bool argty
authorChris Lattner <sabre@nondot.org>
Tue, 12 Aug 2003 04:12:42 +0000 (04:12 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 12 Aug 2003 04:12:42 +0000 (04:12 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7766 91177308-0d34-0410-b5e6-96231b3b80d8

support/tools/TableGen/InstrSelectorEmitter.cpp
support/tools/TableGen/InstrSelectorEmitter.h
utils/TableGen/InstrSelectorEmitter.cpp
utils/TableGen/InstrSelectorEmitter.h

index 42d3c2207a90761f2f2687ffc1072f43430e2f45..133ed7daf52b2250d020a28b85f6a4cf9d9959ba 100644 (file)
@@ -19,6 +19,7 @@ NodeType::ArgResultTypes NodeType::Translate(Record *R) {
   if (Name == "DNVT_arg0") return Arg0;
   if (Name == "DNVT_arg1") return Arg1;
   if (Name == "DNVT_ptr" ) return Ptr;
+  if (Name == "DNVT_bool") return Bool;
   throw "Unknown DagNodeValType '" + Name + "'!";
 }
 
@@ -275,6 +276,9 @@ bool Pattern::InferTypes(TreePatternNode *N, bool &MadeChange) {
     AnyUnset |= InferTypes(Child, MadeChange);
 
     switch (NT.ArgTypes[i]) {
+    case NodeType::Bool:
+      MadeChange |= Child->updateNodeType(MVT::i1, TheRecord->getName());
+      break;
     case NodeType::Arg0:
       MadeChange |= Child->updateNodeType(N->getChild(0)->getType(),
                                           TheRecord->getName());
@@ -300,6 +304,9 @@ bool Pattern::InferTypes(TreePatternNode *N, bool &MadeChange) {
   case NodeType::Void:
     MadeChange |= N->updateNodeType(MVT::isVoid, TheRecord->getName());
     break;
+  case NodeType::Bool:
+    MadeChange |= N->updateNodeType(MVT::i1, TheRecord->getName());
+    break;
   case NodeType::Arg0:
     MadeChange |= N->updateNodeType(N->getChild(0)->getType(),
                                     TheRecord->getName());
index a8ab145c87c8de8843761d782602270a6add71d6..d34c1910c50b348969a98317002fe37b260f9056 100644 (file)
@@ -25,8 +25,7 @@ struct NodeType {
     Arg0,           // Value matches the type of Arg0
     Arg1,           // Value matches the type of Arg1
     Ptr,            // Tree node is the type of the target pointer
-
-    // Return types
+    Bool,           // Always bool
     Void,           // Tree node always returns void
   };
 
index 42d3c2207a90761f2f2687ffc1072f43430e2f45..133ed7daf52b2250d020a28b85f6a4cf9d9959ba 100644 (file)
@@ -19,6 +19,7 @@ NodeType::ArgResultTypes NodeType::Translate(Record *R) {
   if (Name == "DNVT_arg0") return Arg0;
   if (Name == "DNVT_arg1") return Arg1;
   if (Name == "DNVT_ptr" ) return Ptr;
+  if (Name == "DNVT_bool") return Bool;
   throw "Unknown DagNodeValType '" + Name + "'!";
 }
 
@@ -275,6 +276,9 @@ bool Pattern::InferTypes(TreePatternNode *N, bool &MadeChange) {
     AnyUnset |= InferTypes(Child, MadeChange);
 
     switch (NT.ArgTypes[i]) {
+    case NodeType::Bool:
+      MadeChange |= Child->updateNodeType(MVT::i1, TheRecord->getName());
+      break;
     case NodeType::Arg0:
       MadeChange |= Child->updateNodeType(N->getChild(0)->getType(),
                                           TheRecord->getName());
@@ -300,6 +304,9 @@ bool Pattern::InferTypes(TreePatternNode *N, bool &MadeChange) {
   case NodeType::Void:
     MadeChange |= N->updateNodeType(MVT::isVoid, TheRecord->getName());
     break;
+  case NodeType::Bool:
+    MadeChange |= N->updateNodeType(MVT::i1, TheRecord->getName());
+    break;
   case NodeType::Arg0:
     MadeChange |= N->updateNodeType(N->getChild(0)->getType(),
                                     TheRecord->getName());
index a8ab145c87c8de8843761d782602270a6add71d6..d34c1910c50b348969a98317002fe37b260f9056 100644 (file)
@@ -25,8 +25,7 @@ struct NodeType {
     Arg0,           // Value matches the type of Arg0
     Arg1,           // Value matches the type of Arg1
     Ptr,            // Tree node is the type of the target pointer
-
-    // Return types
+    Bool,           // Always bool
     Void,           // Tree node always returns void
   };