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
This commit is contained in:
Chris Lattner 2010-02-17 00:41:34 +00:00
parent fdd452441a
commit 9625fb062a
2 changed files with 10 additions and 6 deletions

View File

@ -319,13 +319,11 @@ SDNode *SelectCodeCommon(SDNode *NodeToMatch, const unsigned char *MatcherTable,
case OPC_CheckPredicate: case OPC_CheckPredicate:
if (!CheckNodePredicate(N.getNode(), MatcherTable[MatcherIndex++])) break; if (!CheckNodePredicate(N.getNode(), MatcherTable[MatcherIndex++])) break;
continue; continue;
case OPC_CheckComplexPat: { case OPC_CheckComplexPat:
unsigned PatNo = MatcherTable[MatcherIndex++]; if (!CheckComplexPattern(NodeToMatch, N,
(void)PatNo; MatcherTable[MatcherIndex++], RecordedNodes))
// FIXME: CHECK IT. break;
continue; continue;
}
case OPC_CheckOpcode: case OPC_CheckOpcode:
if (N->getOpcode() != MatcherTable[MatcherIndex++]) break; if (N->getOpcode() != MatcherTable[MatcherIndex++]) break;
continue; continue;

View File

@ -131,6 +131,12 @@ protected:
return 0; 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. // Calls to these functions are generated by tblgen.
SDNode *Select_INLINEASM(SDNode *N); SDNode *Select_INLINEASM(SDNode *N);
SDNode *Select_UNDEF(SDNode *N); SDNode *Select_UNDEF(SDNode *N);