[llvm] r225643 - IR: Simplify replaceOperandWith(), NFC
Duncan P. N. Exon Smith
dexonsmith at apple.com
Mon Jan 12 10:01:45 PST 2015
Author: dexonsmith
Date: Mon Jan 12 12:01:45 2015
New Revision: 225643
URL: http://llvm.org/viewvc/llvm-project?rev=225643&view=rev
Log:
IR: Simplify replaceOperandWith(), NFC
This will call `handleChangedOperand()` less frequently, but in that
case (i.e., `isStoredDistinctInContext()`) it has identical logic to
here.
Modified:
llvm/trunk/lib/IR/Metadata.cpp
Modified: llvm/trunk/lib/IR/Metadata.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Metadata.cpp?rev=225643&r1=225642&r2=225643&view=diff
==============================================================================
--- llvm/trunk/lib/IR/Metadata.cpp (original)
+++ llvm/trunk/lib/IR/Metadata.cpp Mon Jan 12 12:01:45 2015
@@ -619,13 +619,12 @@ void MDNode::replaceOperandWith(unsigned
if (getOperand(I) == New)
return;
- if (auto *N = dyn_cast<GenericMDNode>(this)) {
- N->handleChangedOperand(mutable_begin() + I, New);
+ if (isStoredDistinctInContext() || isa<MDNodeFwdDecl>(this)) {
+ setOperand(I, New);
return;
}
- assert(isa<MDNodeFwdDecl>(this) && "Expected an MDNode");
- setOperand(I, New);
+ cast<GenericMDNode>(this)->handleChangedOperand(mutable_begin() + I, New);
}
void MDNode::setOperand(unsigned I, Metadata *New) {
More information about the llvm-commits
mailing list