From ff66368a5f83ed62cb7817efc4a16b78c449a4c0 Mon Sep 17 00:00:00 2001 From: Nate Begeman Date: Sat, 13 Aug 2005 06:14:17 +0000 Subject: [PATCH] Remove an unncessary argument to SimplifySelectCC and add an additional assert when creating a select_cc node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22780 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/SelectionDAG.h | 5 ++--- lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/include/llvm/CodeGen/SelectionDAG.h b/include/llvm/CodeGen/SelectionDAG.h index beb1cc9ff67..79e5014e46b 100644 --- a/include/llvm/CodeGen/SelectionDAG.h +++ b/include/llvm/CodeGen/SelectionDAG.h @@ -222,9 +222,8 @@ private: /// SimplifySelectCC - Try to simplify a select_cc built with the specified /// operands and cc. This can be used to simplify both the select_cc node, /// and a select node whose first operand is a setcc. - SDOperand SimplifySelectCC(MVT::ValueType VT, ISD::CondCode CC, - SDOperand N1, SDOperand N2, SDOperand N3, - SDOperand N4); + SDOperand SimplifySelectCC(SDOperand N1, SDOperand N2, SDOperand N3, + SDOperand N4, ISD::CondCode CC); // Maps to auto-CSE operations. std::map >, diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 9da30f1cf50..993b3ec2aa2 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -686,9 +686,10 @@ SDOperand SelectionDAG::SimplifySetCC(MVT::ValueType VT, SDOperand N1, return SDOperand(); } -SDOperand SelectionDAG::SimplifySelectCC(MVT::ValueType VT, ISD::CondCode CC, - SDOperand N1, SDOperand N2, SDOperand N3, - SDOperand N4) { +SDOperand SelectionDAG::SimplifySelectCC(SDOperand N1, SDOperand N2, + SDOperand N3, SDOperand N4, + ISD::CondCode CC) { + MVT::ValueType VT = N3.getValueType(); ConstantSDNode *N2C = dyn_cast(N2.Val); ConstantSDNode *N3C = dyn_cast(N3.Val); ConstantSDNode *N4C = dyn_cast(N4.Val); @@ -1490,9 +1491,8 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT, return getNode(ISD::AND, VT, N1, N2); } if (N1.getOpcode() == ISD::SETCC) { - SDOperand Simp = SimplifySelectCC(VT, - cast(N1.getOperand(2))->get(), - N1.getOperand(0), N1.getOperand(1), N2, N3); + SDOperand Simp = SimplifySelectCC(N1.getOperand(0), N1.getOperand(1), N2, + N3, cast(N1.getOperand(2))->get()); if (Simp.Val) return Simp; } break; @@ -1541,8 +1541,10 @@ SDOperand SelectionDAG::getNode(unsigned Opcode, MVT::ValueType VT, "LHS and RHS of condition must have same type!"); assert(N3.getValueType() == N4.getValueType() && "True and False arms of SelectCC must have same type!"); - SDOperand Simp = SimplifySelectCC(VT, cast(N5)->get(), N1, - N2, N3, N4); + assert(N3.getValueType() == VT && + "select_cc node must be of same type as true and false value!"); + SDOperand Simp = SimplifySelectCC(N1, N2, N3, N4, + cast(N5)->get()); if (Simp.Val) return Simp; }