diff --git a/include/llvm/Metadata.h b/include/llvm/Metadata.h index e63460842e8..1f185369a8d 100644 --- a/include/llvm/Metadata.h +++ b/include/llvm/Metadata.h @@ -234,9 +234,7 @@ public: /// ValueIsDeleted - This handler is used to update metadata store /// when a value is deleted. - void ValueIsDeleted(const Value *) {} void ValueIsDeleted(Instruction *Inst); - void ValueIsRAUWd(Value *V1, Value *V2); /// ValueIsCloned - This handler is used to update metadata store /// when In1 is cloned to create In2. diff --git a/lib/VMCore/Metadata.cpp b/lib/VMCore/Metadata.cpp index 8181466608d..8fa8d375a14 100644 --- a/lib/VMCore/Metadata.cpp +++ b/lib/VMCore/Metadata.cpp @@ -289,7 +289,6 @@ public: void ValueIsDeleted(Instruction *Inst) { removeAllMetadata(Inst); } - void ValueIsRAUWd(Value *V1, Value *V2); /// ValueIsCloned - This handler is used to update metadata store /// when In1 is cloned to create In2. @@ -428,18 +427,6 @@ void MetadataContextImpl::ValueIsCloned(const Instruction *In1, In2->setMetadata(I->first, I->second); } -/// ValueIsRAUWd - This handler is used when V1's all uses are replaced by -/// V2. -void MetadataContextImpl::ValueIsRAUWd(Value *V1, Value *V2) { - Instruction *I1 = dyn_cast(V1); - Instruction *I2 = dyn_cast(V2); - if (!I1 || !I2) - return; - - // FIXME: Give custom handlers a chance to override this. - ValueIsCloned(I1, I2); -} - //===----------------------------------------------------------------------===// // MetadataContext implementation. // @@ -484,9 +471,6 @@ void MetadataContext::getMDKindNames(SmallVectorImpl &N) const { void MetadataContext::ValueIsDeleted(Instruction *Inst) { pImpl->ValueIsDeleted(Inst); } -void MetadataContext::ValueIsRAUWd(Value *V1, Value *V2) { - pImpl->ValueIsRAUWd(V1, V2); -} /// ValueIsCloned - This handler is used to update metadata store /// when In1 is cloned to create In2. diff --git a/lib/VMCore/Value.cpp b/lib/VMCore/Value.cpp index 0155fa5cfef..fe1219f9a88 100644 --- a/lib/VMCore/Value.cpp +++ b/lib/VMCore/Value.cpp @@ -19,7 +19,6 @@ #include "llvm/Instructions.h" #include "llvm/Operator.h" #include "llvm/Module.h" -#include "llvm/Metadata.h" #include "llvm/ValueSymbolTable.h" #include "llvm/ADT/SmallString.h" #include "llvm/Support/Debug.h" @@ -302,14 +301,6 @@ void Value::uncheckedReplaceAllUsesWith(Value *New) { if (HasValueHandle) ValueHandleBase::ValueIsRAUWd(this, New); - // FIXME: It doesn't make sense at all for metadata to follow RAUW. - if (Instruction *I = dyn_cast(this)) - if (I->hasMetadata()) { - LLVMContext &Context = getContext(); - // FIXME: NUKE ValueIsRAUWd?? - Context.pImpl->TheMetadata.ValueIsRAUWd(this, New); - } - while (!use_empty()) { Use &U = *UseList; // Must handle Constants specially, we cannot call replaceUsesOfWith on a