From eab3c6548c6d48d180e3fd470c0b716ecb5ad845 Mon Sep 17 00:00:00 2001 From: Pete Cooper Date: Wed, 24 Jun 2015 00:05:07 +0000 Subject: [PATCH] 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 --- include/llvm/IR/GlobalValue.h | 1 + include/llvm/IR/GlobalVariable.h | 4 ---- lib/IR/Globals.cpp | 24 ++++-------------------- 3 files changed, 5 insertions(+), 24 deletions(-) diff --git a/include/llvm/IR/GlobalValue.h b/include/llvm/IR/GlobalValue.h index c2a9d7e4755..4bca80edb4d 100644 --- a/include/llvm/IR/GlobalValue.h +++ b/include/llvm/IR/GlobalValue.h @@ -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). diff --git a/include/llvm/IR/GlobalVariable.h b/include/llvm/IR/GlobalVariable.h index 126bebbdcb1..7b291605d45 100644 --- a/include/llvm/IR/GlobalVariable.h +++ b/include/llvm/IR/GlobalVariable.h @@ -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; diff --git a/lib/IR/Globals.cpp b/lib/IR/Globals.cpp index a431b5c6100..49ac236778c 100644 --- a/lib/IR/Globals.cpp +++ b/lib/IR/Globals.cpp @@ -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(To) && - "Attempt to replace GVar initializer with non-constant"); - - // Okay, preconditions out of the way, replace the constant initializer. - this->setOperand(0, cast(To)); -} - void GlobalVariable::setInitializer(Constant *InitVal) { if (!InitVal) { if (hasInitializer()) {