From 409ac586e83525a760692cf0affb01f1c9efa594 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 17 Feb 2010 06:28:22 +0000 Subject: [PATCH] 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 --- lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 5 +++++ utils/TableGen/DAGISelEmitter.cpp | 16 ++-------------- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index eead526f099..9ba0d55b7a9 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -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: "; diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp index 1ac2d944311..e0e25731e5b 100644 --- a/utils/TableGen/DAGISelEmitter.cpp +++ b/utils/TableGen/DAGISelEmitter.cpp @@ -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"; } -- 2.34.1