diff --git a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp index aa325b3ba40..0e7cc2ee1d5 100644 --- a/lib/CodeGen/SelectionDAG/DAGCombiner.cpp +++ b/lib/CodeGen/SelectionDAG/DAGCombiner.cpp @@ -81,7 +81,7 @@ namespace { std::cerr << "\nWith: "; To[0].Val->dump(&DAG); std::cerr << " and " << To.size()-1 << " other values\n"); std::vector NowDead; - DAG.ReplaceAllUsesWith(N, To, &NowDead); + DAG.ReplaceAllUsesWith(N, &To[0], &NowDead); // Push the new nodes and any users onto the worklist for (unsigned i = 0, e = To.size(); i != e; ++i) { @@ -416,7 +416,8 @@ void DAGCombiner::Run(bool RunningAfterLegalize) { std::cerr << "\nWith: "; RV.Val->dump(&DAG); std::cerr << '\n'); std::vector NowDead; - DAG.ReplaceAllUsesWith(N, std::vector(1, RV), &NowDead); + SDOperand OpV = RV; + DAG.ReplaceAllUsesWith(N, &OpV, &NowDead); // Push the new node and any users onto the worklist WorkList.push_back(RV.Val); diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index c6e20574456..75a063953bf 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -2441,11 +2441,9 @@ void SelectionDAG::ReplaceAllUsesWith(SDNode *From, SDNode *To, /// This version can replace From with any result values. To must match the /// number and types of values returned by From. void SelectionDAG::ReplaceAllUsesWith(SDNode *From, - const std::vector &To, + const SDOperand *To, std::vector *Deleted) { - assert(From->getNumValues() == To.size() && - "Incorrect number of values to replace with!"); - if (To.size() == 1 && To[0].Val->getNumValues() == 1) { + if (From->getNumValues() == 1 && To[0].Val->getNumValues() == 1) { // Degenerate case handled above. ReplaceAllUsesWith(SDOperand(From, 0), To[0], Deleted); return;