[llvm-commits] [llvm] r96426 - in /llvm/trunk/include/llvm/CodeGen: DAGISelHeader.h SelectionDAGISel.h

Chris Lattner sabre at nondot.org
Tue Feb 16 16:41:34 PST 2010


Author: lattner
Date: Tue Feb 16 18:41:34 2010
New Revision: 96426

URL: http://llvm.org/viewvc/llvm-project?rev=96426&view=rev
Log:
make the new isel's interpreter loop call the generated 
CheckComplexPattern function.  Though it is logically const,
I don't have the fortitude to clean up all the targets now,
and it not being const doesn't block anything.


Modified:
    llvm/trunk/include/llvm/CodeGen/DAGISelHeader.h
    llvm/trunk/include/llvm/CodeGen/SelectionDAGISel.h

Modified: llvm/trunk/include/llvm/CodeGen/DAGISelHeader.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/DAGISelHeader.h?rev=96426&r1=96425&r2=96426&view=diff

==============================================================================
--- llvm/trunk/include/llvm/CodeGen/DAGISelHeader.h (original)
+++ llvm/trunk/include/llvm/CodeGen/DAGISelHeader.h Tue Feb 16 18:41:34 2010
@@ -319,13 +319,11 @@
     case OPC_CheckPredicate:
       if (!CheckNodePredicate(N.getNode(), MatcherTable[MatcherIndex++])) break;
       continue;
-    case OPC_CheckComplexPat: {
-      unsigned PatNo = MatcherTable[MatcherIndex++];
-      (void)PatNo;
-      // FIXME: CHECK IT.
+    case OPC_CheckComplexPat:
+      if (!CheckComplexPattern(NodeToMatch, N, 
+                               MatcherTable[MatcherIndex++], RecordedNodes))
+        break;
       continue;
-    }
-        
     case OPC_CheckOpcode:
       if (N->getOpcode() != MatcherTable[MatcherIndex++]) break;
       continue;

Modified: llvm/trunk/include/llvm/CodeGen/SelectionDAGISel.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/SelectionDAGISel.h?rev=96426&r1=96425&r2=96426&view=diff

==============================================================================
--- llvm/trunk/include/llvm/CodeGen/SelectionDAGISel.h (original)
+++ llvm/trunk/include/llvm/CodeGen/SelectionDAGISel.h Tue Feb 16 18:41:34 2010
@@ -131,6 +131,12 @@
     return 0;
   }
   
+  virtual bool CheckComplexPattern(SDNode *Root, SDValue N, unsigned PatternNo,
+                                   SmallVectorImpl<SDValue> &Result) {
+    assert(0 && "Tblgen should generate the implementation of this!");
+    return false;
+  }
+  
   // Calls to these functions are generated by tblgen.
   SDNode *Select_INLINEASM(SDNode *N);
   SDNode *Select_UNDEF(SDNode *N);





More information about the llvm-commits mailing list