forked from OSchip/llvm-project
remove the old and dangerous uncheckedReplaceAllUsesWith method,
which was just replaceAllUsesWith without some assertions. It was needed back when type refinement was alive. llvm-svn: 135253
This commit is contained in:
parent
be6610caba
commit
af1783f987
|
@ -147,10 +147,6 @@ public:
|
|||
///
|
||||
void replaceAllUsesWith(Value *V);
|
||||
|
||||
// uncheckedReplaceAllUsesWith - Just like replaceAllUsesWith but dangerous.
|
||||
// Only use when in type resolution situations!
|
||||
void uncheckedReplaceAllUsesWith(Value *V);
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// Methods for handling the chain of uses of this Value.
|
||||
//
|
||||
|
|
|
@ -1059,10 +1059,6 @@ std::string ConstantArray::getAsCString() const {
|
|||
//---- ConstantStruct::get() implementation...
|
||||
//
|
||||
|
||||
namespace llvm {
|
||||
|
||||
}
|
||||
|
||||
// destroyConstant - Remove the constant from the constant table...
|
||||
//
|
||||
void ConstantStruct::destroyConstant() {
|
||||
|
@ -1202,7 +1198,7 @@ void BlockAddress::replaceUsesOfWithOnConstant(Value *From, Value *To, Use *U) {
|
|||
assert(NewBA != this && "I didn't contain From!");
|
||||
|
||||
// Everyone using this now uses the replacement.
|
||||
uncheckedReplaceAllUsesWith(NewBA);
|
||||
replaceAllUsesWith(NewBA);
|
||||
|
||||
destroyConstant();
|
||||
}
|
||||
|
@ -1984,7 +1980,7 @@ void ConstantArray::replaceUsesOfWithOnConstant(Value *From, Value *To,
|
|||
assert(Replacement != this && "I didn't contain From!");
|
||||
|
||||
// Everyone using this now uses the replacement.
|
||||
uncheckedReplaceAllUsesWith(Replacement);
|
||||
replaceAllUsesWith(Replacement);
|
||||
|
||||
// Delete the old constant!
|
||||
destroyConstant();
|
||||
|
@ -2050,7 +2046,7 @@ void ConstantStruct::replaceUsesOfWithOnConstant(Value *From, Value *To,
|
|||
assert(Replacement != this && "I didn't contain From!");
|
||||
|
||||
// Everyone using this now uses the replacement.
|
||||
uncheckedReplaceAllUsesWith(Replacement);
|
||||
replaceAllUsesWith(Replacement);
|
||||
|
||||
// Delete the old constant!
|
||||
destroyConstant();
|
||||
|
@ -2072,7 +2068,7 @@ void ConstantVector::replaceUsesOfWithOnConstant(Value *From, Value *To,
|
|||
assert(Replacement != this && "I didn't contain From!");
|
||||
|
||||
// Everyone using this now uses the replacement.
|
||||
uncheckedReplaceAllUsesWith(Replacement);
|
||||
replaceAllUsesWith(Replacement);
|
||||
|
||||
// Delete the old constant!
|
||||
destroyConstant();
|
||||
|
@ -2170,7 +2166,7 @@ void ConstantExpr::replaceUsesOfWithOnConstant(Value *From, Value *ToV,
|
|||
assert(Replacement != this && "I didn't contain From!");
|
||||
|
||||
// Everyone using this now uses the replacement.
|
||||
uncheckedReplaceAllUsesWith(Replacement);
|
||||
replaceAllUsesWith(Replacement);
|
||||
|
||||
// Delete the old constant!
|
||||
destroyConstant();
|
||||
|
|
|
@ -280,17 +280,16 @@ void Value::takeName(Value *V) {
|
|||
}
|
||||
|
||||
|
||||
// uncheckedReplaceAllUsesWith - This is exactly the same as replaceAllUsesWith,
|
||||
// except that it doesn't have all of the asserts. The asserts fail because we
|
||||
// are half-way done resolving types, which causes some types to exist as two
|
||||
// different Type*'s at the same time. This is a sledgehammer to work around
|
||||
// this problem.
|
||||
//
|
||||
void Value::uncheckedReplaceAllUsesWith(Value *New) {
|
||||
void Value::replaceAllUsesWith(Value *New) {
|
||||
assert(New && "Value::replaceAllUsesWith(<null>) is invalid!");
|
||||
assert(New != this && "this->replaceAllUsesWith(this) is NOT valid!");
|
||||
assert(New->getType() == getType() &&
|
||||
"replaceAllUses of value with new value of different type!");
|
||||
|
||||
// Notify all ValueHandles (if present) that this value is going away.
|
||||
if (HasValueHandle)
|
||||
ValueHandleBase::ValueIsRAUWd(this, New);
|
||||
|
||||
|
||||
while (!use_empty()) {
|
||||
Use &U = *UseList;
|
||||
// Must handle Constants specially, we cannot call replaceUsesOfWith on a
|
||||
|
@ -301,23 +300,14 @@ void Value::uncheckedReplaceAllUsesWith(Value *New) {
|
|||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
U.set(New);
|
||||
}
|
||||
|
||||
|
||||
if (BasicBlock *BB = dyn_cast<BasicBlock>(this))
|
||||
BB->replaceSuccessorsPhiUsesWith(cast<BasicBlock>(New));
|
||||
}
|
||||
|
||||
void Value::replaceAllUsesWith(Value *New) {
|
||||
assert(New && "Value::replaceAllUsesWith(<null>) is invalid!");
|
||||
assert(New != this && "this->replaceAllUsesWith(this) is NOT valid!");
|
||||
assert(New->getType() == getType() &&
|
||||
"replaceAllUses of value with new value of different type!");
|
||||
|
||||
uncheckedReplaceAllUsesWith(New);
|
||||
}
|
||||
|
||||
Value *Value::stripPointerCasts() {
|
||||
if (!getType()->isPointerTy())
|
||||
return this;
|
||||
|
|
Loading…
Reference in New Issue