Use an assert to check that SelectCode isn't called on
authorDan Gohman <gohman@apple.com>
Wed, 5 Nov 2008 18:30:52 +0000 (18:30 +0000)
committerDan Gohman <gohman@apple.com>
Wed, 5 Nov 2008 18:30:52 +0000 (18:30 +0000)
nodes that are already selected.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58763 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/DAGISelEmitter.cpp

index 18293314263ae73f389acb8530e31a93bb38370a..3f86d2dade3968840e961b80f9efa469c9162b9a 100644 (file)
@@ -1957,13 +1957,12 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
 
   OS << "// The main instruction selector code.\n"
      << "SDNode *SelectCode(SDValue N) {\n"
-     << "  if (N.isMachineOpcode()) {\n"
-     << "    return NULL;   // Already selected.\n"
-     << "  }\n\n"
      << "  MVT::SimpleValueType NVT = N.getNode()->getValueType(0).getSimpleVT();\n"
      << "  switch (N.getOpcode()) {\n"
-     << "  default: break;\n"
-     << "  case ISD::EntryToken:       // These leaves remain the same.\n"
+     << "  default:\n"
+     << "    assert(!N.isMachineOpcode() && \"Node already selected!\");\n"
+     << "    break;\n"
+     << "  case ISD::EntryToken:       // These nodes remain the same.\n"
      << "  case ISD::MEMOPERAND:\n"
      << "  case ISD::BasicBlock:\n"
      << "  case ISD::Register:\n"