From e5e4a9a4dfce82ddc4b7dd70d46e77952b766169 Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Mon, 12 Jan 2015 18:01:45 +0000 Subject: [PATCH] IR: Simplify replaceOperandWith(), NFC This will call `handleChangedOperand()` less frequently, but in that case (i.e., `isStoredDistinctInContext()`) it has identical logic to here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225643 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/IR/Metadata.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/IR/Metadata.cpp b/lib/IR/Metadata.cpp index 9dd07df1f8d..7ed0b951a3a 100644 --- a/lib/IR/Metadata.cpp +++ b/lib/IR/Metadata.cpp @@ -619,13 +619,12 @@ void MDNode::replaceOperandWith(unsigned I, Metadata *New) { if (getOperand(I) == New) return; - if (auto *N = dyn_cast(this)) { - N->handleChangedOperand(mutable_begin() + I, New); + if (isStoredDistinctInContext() || isa(this)) { + setOperand(I, New); return; } - assert(isa(this) && "Expected an MDNode"); - setOperand(I, New); + cast(this)->handleChangedOperand(mutable_begin() + I, New); } void MDNode::setOperand(unsigned I, Metadata *New) { -- 2.34.1