Legalize new node, add assertion.
authorChris Lattner <sabre@nondot.org>
Thu, 13 Jan 2005 17:59:25 +0000 (17:59 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 13 Jan 2005 17:59:25 +0000 (17:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19527 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

index 64c686efc6769ddc23b4a9ecd6fce50e6835baeb..58f98894efedcbb17b16b1c3414e65fb6031ae51 100644 (file)
@@ -295,6 +295,18 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
     }
     break;
   }
+  case ISD::TokenFactor: {
+    std::vector<SDOperand> Ops;
+    bool Changed = false;
+    for (unsigned i = 0, e = Node->getNumOperands(); i != e; ++i) {
+      Ops.push_back(LegalizeOp(Node->getOperand(i)));  // Legalize the operands
+      Changed |= Ops[i] != Node->getOperand(i);
+    }
+    if (Changed)
+      Result = DAG.getNode(ISD::TokenFactor, MVT::Other, Ops);
+    break;
+  }
+
   case ISD::ADJCALLSTACKDOWN:
   case ISD::ADJCALLSTACKUP:
     Tmp1 = LegalizeOp(Node->getOperand(0));  // Legalize the chain.
@@ -662,6 +674,10 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
         Result = DAG.getNode(Node->getOpcode(), Node->getValueType(0), Tmp1);
       break;
     case Expand:
+      assert(Node->getOpcode() != ISD::SINT_TO_FP &&
+             Node->getOpcode() != ISD::UINT_TO_FP &&
+             "Cannot lower Xint_to_fp to a call yet!");
+
       // In the expand case, we must be dealing with a truncate, because
       // otherwise the result would be larger than the source.
       assert(Node->getOpcode() == ISD::TRUNCATE &&