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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96426 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2010-02-17 00:41:34 +00:00
parent 5be6e5990b
commit bd12fe8b69
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);