OSDN Git Service

Keep track of the retval type as well.
authorChris Lattner <sabre@nondot.org>
Tue, 18 Jan 2005 19:26:36 +0000 (19:26 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 18 Jan 2005 19:26:36 +0000 (19:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19670 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/SelectionDAG.cpp

index 43f13d7..3da2f5f 100644 (file)
@@ -218,7 +218,9 @@ void SelectionDAG::DeleteNodeIfDead(SDNode *N, void *NodeSet) {
   case ISD::SETCC:
     SetCCs.erase(std::make_pair(std::make_pair(N->getOperand(0),
                                                N->getOperand(1)),
-                                cast<SetCCSDNode>(N)->getCondition()));
+                                std::make_pair(
+                                     cast<SetCCSDNode>(N)->getCondition(),
+                                     N->getValueType(0))));
     break;
   case ISD::TRUNCSTORE:
   case ISD::SIGN_EXTEND_INREG:
@@ -463,7 +465,8 @@ SDOperand SelectionDAG::getSetCC(ISD::CondCode Cond, MVT::ValueType VT,
     }
   }
 
-  SetCCSDNode *&N = SetCCs[std::make_pair(std::make_pair(N1, N2), Cond)];
+  SetCCSDNode *&N = SetCCs[std::make_pair(std::make_pair(N1, N2),
+                                          std::make_pair(Cond, VT))];
   if (N) return SDOperand(N, 0);
   N = new SetCCSDNode(Cond, N1, N2);
   N->setValueTypes(VT);