diff options
| author | Chris Lattner <sabre@nondot.org> | 2010-02-17 00:41:34 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2010-02-17 00:41:34 +0000 |
| commit | 237419458e266922dd5f7c40e54f7fe19f509555 (patch) | |
| tree | 28d0470dd8d0b50d821f443af49ce25500eae1e4 | |
| parent | 29004673f709174d5016c36fe5bd07003dad5667 (diff) | |
| download | bcm5719-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.h | 10 | ||||
| -rw-r--r-- | llvm/include/llvm/CodeGen/SelectionDAGISel.h | 6 |
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); |

