Remove unused GlobalVariable::replaceUsesOfWithOnConstant. NFC.

The only caller of this method is Value::replaceAllUsesWith which
explicitly checks that we are not a GlobalValue.  So replace the
body with an unreachable to ensure that we never call it.

The unreachable itself is moved to GlobalValue not GlobalVariable
as that is the base class of all the globals we don't want to call
this method on.

Note, this patch is short lived as i'll soon refactor all callers
of this method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240486 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Pete Cooper 2015-06-24 00:05:07 +00:00
parent cd5ba15e76
commit eab3c6548c
3 changed files with 5 additions and 24 deletions

View File

@ -92,6 +92,7 @@ private:
friend class Constant;
void destroyConstantImpl();
void replaceUsesOfWithOnConstant(Value *From, Value *To, Use *U) override;
protected:
/// \brief The intrinsic ID for this subclass (which must be a Function).

View File

@ -166,10 +166,6 @@ public:
///
void eraseFromParent() override;
/// Override Constant's implementation of this method so we can
/// replace constant initializers.
void replaceUsesOfWithOnConstant(Value *From, Value *To, Use *U) override;
// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const Value *V) {
return V->getValueID() == Value::GlobalVariableVal;

View File

@ -48,6 +48,10 @@ void GlobalValue::destroyConstantImpl() {
llvm_unreachable("You can't GV->destroyConstantImpl()!");
}
void GlobalValue::replaceUsesOfWithOnConstant(Value *From, Value *To, Use *U) {
llvm_unreachable("You can't GV->replaceUsesOfWithOnConstant()!");
}
/// copyAttributesFrom - copy all additional attributes (those not needed to
/// create a GlobalValue) from the GlobalValue Src to this one.
void GlobalValue::copyAttributesFrom(const GlobalValue *Src) {
@ -191,26 +195,6 @@ void GlobalVariable::eraseFromParent() {
getParent()->getGlobalList().erase(this);
}
void GlobalVariable::replaceUsesOfWithOnConstant(Value *From, Value *To,
Use *U) {
// If you call this, then you better know this GVar has a constant
// initializer worth replacing. Enforce that here.
assert(getNumOperands() == 1 &&
"Attempt to replace uses of Constants on a GVar with no initializer");
// And, since you know it has an initializer, the From value better be
// the initializer :)
assert(getOperand(0) == From &&
"Attempt to replace wrong constant initializer in GVar");
// And, you better have a constant for the replacement value
assert(isa<Constant>(To) &&
"Attempt to replace GVar initializer with non-constant");
// Okay, preconditions out of the way, replace the constant initializer.
this->setOperand(0, cast<Constant>(To));
}
void GlobalVariable::setInitializer(Constant *InitVal) {
if (!InitVal) {
if (hasInitializer()) {