sink special case "cannotyetselect" for intrinsics out of the

tblgen splatted code into the implementation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96460 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2010-02-17 06:28:22 +00:00
parent 9a747f1305
commit 409ac586e8
2 changed files with 7 additions and 14 deletions

View File

@ -1444,6 +1444,11 @@ SDNode *SelectionDAGISel::Select_EH_LABEL(SDNode *N) {
}
void SelectionDAGISel::CannotYetSelect(SDNode *N) {
if (N->getOpcode() == ISD::INTRINSIC_W_CHAIN ||
N->getOpcode() == ISD::INTRINSIC_WO_CHAIN ||
N->getOpcode() == ISD::INTRINSIC_VOID)
return CannotYetSelectIntrinsic(N);
std::string msg;
raw_string_ostream Msg(msg);
Msg << "Cannot yet select: ";

View File

@ -1841,13 +1841,7 @@ void DAGISelEmitter::EmitInstructionSelector(raw_ostream &OS) {
// catch the case where nothing handles a pattern.
if (mightNotMatch) {
OS << "\n";
if (OpName != "ISD::INTRINSIC_W_CHAIN" &&
OpName != "ISD::INTRINSIC_WO_CHAIN" &&
OpName != "ISD::INTRINSIC_VOID")
OS << " CannotYetSelect(N);\n";
else
OS << " CannotYetSelectIntrinsic(N);\n";
OS << " CannotYetSelect(N);\n";
OS << " return NULL;\n";
}
OS << "}\n\n";
@ -1948,13 +1942,7 @@ void DAGISelEmitter::EmitInstructionSelector(raw_ostream &OS) {
}
OS << " } // end of big switch.\n\n"
<< " if (N->getOpcode() != ISD::INTRINSIC_W_CHAIN &&\n"
<< " N->getOpcode() != ISD::INTRINSIC_WO_CHAIN &&\n"
<< " N->getOpcode() != ISD::INTRINSIC_VOID) {\n"
<< " CannotYetSelect(N);\n"
<< " } else {\n"
<< " CannotYetSelectIntrinsic(N);\n"
<< " }\n"
<< " CannotYetSelect(N);\n"
<< " return NULL;\n"
<< "}\n\n";
}