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