From: Chris Lattner Date: Sat, 8 Jan 2005 20:35:13 +0000 (+0000) Subject: Tighten up assertions. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e3304a3d24afc952d3cb415d1b504d973573c5c5;p=oota-llvm.git Tighten up assertions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19397 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 63fcc1c2a72..19e70f59279 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -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: