diff options
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 14 | 
1 files changed, 3 insertions, 11 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 9466f4dd060..dcb2ab0a333 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -5418,17 +5418,9 @@ UpdateNodeOperands(SDNode *N, ArrayRef<SDValue> Ops) {    assert(N->getNumOperands() == NumOps &&           "Update with wrong number of operands"); -  // Check to see if there is no change. -  bool AnyChange = false; -  for (unsigned i = 0; i != NumOps; ++i) { -    if (Ops[i] != N->getOperand(i)) { -      AnyChange = true; -      break; -    } -  } - -  // No operands changed, just return the input node. -  if (!AnyChange) return N; +  // If no operands changed just return the input node. +  if (std::equal(Ops.begin(), Ops.end(), N->op_begin())) +    return N;    // See if the modified node already exists.    void *InsertPos = nullptr;  | 

