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:
Chris Lattner 2011-07-15 06:18:52 +00:00
parent be6610caba
commit af1783f987
3 changed files with 14 additions and 32 deletions

View File

@ -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.
//

View File

@ -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();

View File

@ -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;