Tighten up assertions.
authorChris Lattner <sabre@nondot.org>
Sat, 8 Jan 2005 20:35:13 +0000 (20:35 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 8 Jan 2005 20:35:13 +0000 (20:35 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19397 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

index 63fcc1c2a726b4fc3a3f691f69b2605265b50b43..19e70f59279c29e96276177c19067fa478d245d2 100644 (file)
@@ -199,12 +199,12 @@ void SelectionDAGLegalize::LegalizeDAG() {
 }
 
 SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
+  assert(getTypeAction(Op.getValueType()) == Legal &&
+         "Caller should expand or promote operands that are not legal!");
+
   // If this operation defines any values that cannot be represented in a
-  // register on this target, make sure to expand it.
-  if (Op.Val->getNumValues() == 1) {// Fast path == assertion only
-    assert(getTypeAction(Op.Val->getValueType(0)) == Legal &&
-           "For a single use value, caller should check for legality!");
-  } else {
+  // register on this target, make sure to expand or promote them.
+  if (Op.Val->getNumValues() > 1) {
     for (unsigned i = 0, e = Op.Val->getNumValues(); i != e; ++i)
       switch (getTypeAction(Op.Val->getValueType(i))) {
       case Legal: break;  // Nothing to do.
@@ -719,9 +719,7 @@ void SelectionDAGLegalize::ExpandOp(SDOperand Op, SDOperand &Lo, SDOperand &Hi){
     Hi = SDOperand(NC, 1);
 
     // Insert the new chain mapping.
-    bool isNew = LegalizedNodes.insert(std::make_pair(Op.getValue(1),
-                                                      Hi.getValue(2))).second;
-    assert(isNew && "This node was already legalized!");
+    AddLegalizedOperand(Op.getValue(1), Hi.getValue(2));
     break;
   }
   case ISD::AND: