Use the new version of isSubClassOf
authorChris Lattner <sabre@nondot.org>
Thu, 7 Aug 2003 19:42:14 +0000 (19:42 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 7 Aug 2003 19:42:14 +0000 (19:42 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7683 91177308-0d34-0410-b5e6-96231b3b80d8

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

index 5aadfa46346e0c324ff35cc97ab509b88ba69b58..b9f0d6e240d4bffeb3c8d72d6e55580238fb224a 100644 (file)
@@ -110,18 +110,17 @@ void Pattern::error(const std::string &Msg) {
 
 static MVT::ValueType getIntrinsicType(Record *R) {
   // Check to see if this is a register or a register class...
-  const std::vector<Record*> &SuperClasses = R->getSuperClasses();
-  for (unsigned i = 0, e = SuperClasses.size(); i != e; ++i)
-    if (SuperClasses[i]->getName() == "RegisterClass") {
-      return getValueType(R->getValueAsDef("RegType"));
-    } else if (SuperClasses[i]->getName() == "Register") {
-      std::cerr << "WARNING: Explicit registers not handled yet!\n";
-      return MVT::Other;
-    } else if (SuperClasses[i]->getName() == "Nonterminal") {
-      //std::cerr << "Warning nonterminal type not handled yet:" << R->getName()
-      //          << "\n";
-      return MVT::Other;
-    }
+  if (R->isSubClassOf("RegisterClass")) {
+    return getValueType(R->getValueAsDef("RegType"));
+  } else if (R->isSubClassOf("Register")) {
+    std::cerr << "WARNING: Explicit registers not handled yet!\n";
+    return MVT::Other;
+  } else if (R->isSubClassOf("Nonterminal")) {
+    //std::cerr << "Warning nonterminal type not handled yet:" << R->getName()
+    //          << "\n";
+    return MVT::Other;
+  }
+
   throw "Error: Unknown value used: " + R->getName();
 }
 
index 5aadfa46346e0c324ff35cc97ab509b88ba69b58..b9f0d6e240d4bffeb3c8d72d6e55580238fb224a 100644 (file)
@@ -110,18 +110,17 @@ void Pattern::error(const std::string &Msg) {
 
 static MVT::ValueType getIntrinsicType(Record *R) {
   // Check to see if this is a register or a register class...
-  const std::vector<Record*> &SuperClasses = R->getSuperClasses();
-  for (unsigned i = 0, e = SuperClasses.size(); i != e; ++i)
-    if (SuperClasses[i]->getName() == "RegisterClass") {
-      return getValueType(R->getValueAsDef("RegType"));
-    } else if (SuperClasses[i]->getName() == "Register") {
-      std::cerr << "WARNING: Explicit registers not handled yet!\n";
-      return MVT::Other;
-    } else if (SuperClasses[i]->getName() == "Nonterminal") {
-      //std::cerr << "Warning nonterminal type not handled yet:" << R->getName()
-      //          << "\n";
-      return MVT::Other;
-    }
+  if (R->isSubClassOf("RegisterClass")) {
+    return getValueType(R->getValueAsDef("RegType"));
+  } else if (R->isSubClassOf("Register")) {
+    std::cerr << "WARNING: Explicit registers not handled yet!\n";
+    return MVT::Other;
+  } else if (R->isSubClassOf("Nonterminal")) {
+    //std::cerr << "Warning nonterminal type not handled yet:" << R->getName()
+    //          << "\n";
+    return MVT::Other;
+  }
+
   throw "Error: Unknown value used: " + R->getName();
 }