summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-02-17 00:41:34 +0000
committerChris Lattner <sabre@nondot.org>2010-02-17 00:41:34 +0000
commit237419458e266922dd5f7c40e54f7fe19f509555 (patch)
tree28d0470dd8d0b50d821f443af49ce25500eae1e4
parent29004673f709174d5016c36fe5bd07003dad5667 (diff)
downloadbcm5719-llvm-237419458e266922dd5f7c40e54f7fe19f509555.tar.gz
bcm5719-llvm-237419458e266922dd5f7c40e54f7fe19f509555.zip
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. llvm-svn: 96426
-rw-r--r--llvm/include/llvm/CodeGen/DAGISelHeader.h10
-rw-r--r--llvm/include/llvm/CodeGen/SelectionDAGISel.h6
2 files changed, 10 insertions, 6 deletions
diff --git a/llvm/include/llvm/CodeGen/DAGISelHeader.h b/llvm/include/llvm/CodeGen/DAGISelHeader.h
index f4514b07fdd..f3eccf0a5ea 100644
--- a/llvm/include/llvm/CodeGen/DAGISelHeader.h
+++ b/llvm/include/llvm/CodeGen/DAGISelHeader.h
@@ -319,13 +319,11 @@ SDNode *SelectCodeCommon(SDNode *NodeToMatch, const unsigned char *MatcherTable,
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;
diff --git a/llvm/include/llvm/CodeGen/SelectionDAGISel.h b/llvm/include/llvm/CodeGen/SelectionDAGISel.h
index 0be91b414d0..1b9c2686050 100644
--- a/llvm/include/llvm/CodeGen/SelectionDAGISel.h
+++ b/llvm/include/llvm/CodeGen/SelectionDAGISel.h
@@ -131,6 +131,12 @@ protected:
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);
OpenPOWER on IntegriCloud