clean up some code, eliminate NodeIsComplexPattern, which
authorChris Lattner <sabre@nondot.org>
Tue, 16 Feb 2010 23:13:59 +0000 (23:13 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 16 Feb 2010 23:13:59 +0000 (23:13 +0000)
does the same thing as getComplexPatternInfo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96411 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/DAGISelEmitter.cpp

index 9b8d88d215ab7c2652eb7c690b4dd5319e3f4137..a62905e9ec12b66d563b6d274e9f698e028dc470 100644 (file)
@@ -47,16 +47,6 @@ static std::string getValueName(const std::string &S) {
   return S;
 }
 
-/// NodeIsComplexPattern - return true if N is a leaf node and a subclass of
-/// ComplexPattern.
-static bool NodeIsComplexPattern(TreePatternNode *N) {
-  return (N->isLeaf() &&
-          dynamic_cast<DefInit*>(N->getLeafValue()) &&
-          static_cast<DefInit*>(N->getLeafValue())->getDef()->
-          isSubClassOf("ComplexPattern"));
-}
-
-
 /// getPatternSize - Return the 'size' of this pattern.  We want to match large
 /// patterns before small ones.  This is used to determine the size of a
 /// pattern.
@@ -96,7 +86,7 @@ static unsigned getPatternSize(TreePatternNode *P, CodeGenDAGPatterns &CGP) {
     else if (Child->isLeaf()) {
       if (dynamic_cast<IntInit*>(Child->getLeafValue())) 
         Size += 5;  // Matches a ConstantSDNode (+3) and a specific value (+2).
-      else if (NodeIsComplexPattern(Child))
+      else if (Child->getComplexPatternInfo(CGP))
         Size += getPatternSize(Child, CGP);
       else if (!Child->getPredicateFns().empty())
         ++Size;
@@ -530,10 +520,9 @@ void PatternCodeEmitter::EmitMatchCode(TreePatternNode *N, TreePatternNode *P,
                 ")->getSExtValue() == INT64_C(" +
                 itostr(II->getValue()) + ")");
       return;
-    } else if (!NodeIsComplexPattern(N)) {
-      assert(0 && "Cannot match this as a leaf value!");
-      abort();
     }
+    assert(N->getComplexPatternInfo(CGP) != 0 &&
+           "Cannot match this as a leaf value!");
   }
   
   // If this node has a name associated with it, capture it in VariableMap. If
@@ -2014,11 +2003,9 @@ void DAGISelEmitter::run(raw_ostream &OS) {
     else
       Matcher = new PushMatcherNode(N, Matcher);
   }
-  
-  
+
+  // OptimizeMatcher(Matcher);
   EmitMatcherTable(Matcher, OS);
-  
-  
   //Matcher->dump();
   delete Matcher;
 #endif