mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-07 12:28:24 +00:00
Extend constructor so that it can support GlobalValue's (with names).
Make GlobalValue a "classof" Constant Fix the classof(Value*) to include GlobalValue's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14918 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -20,7 +20,9 @@ namespace llvm {
|
|||||||
|
|
||||||
class Constant : public User {
|
class Constant : public User {
|
||||||
protected:
|
protected:
|
||||||
inline Constant(const Type *Ty) : User(Ty, Value::ConstantVal) {}
|
inline Constant(const Type *Ty, ValueTy vty = Value::ConstantVal,
|
||||||
|
const std::string& Name = "" )
|
||||||
|
: User(Ty, vty, Name) {}
|
||||||
~Constant() {}
|
~Constant() {}
|
||||||
|
|
||||||
void destroyConstantImpl();
|
void destroyConstantImpl();
|
||||||
@@ -50,20 +52,16 @@ public:
|
|||||||
/// available cached constants. Implementations should call
|
/// available cached constants. Implementations should call
|
||||||
/// destroyConstantImpl as the last thing they do, to destroy all users and
|
/// destroyConstantImpl as the last thing they do, to destroy all users and
|
||||||
/// delete this.
|
/// delete this.
|
||||||
///
|
|
||||||
/// Note that this call is only valid on non-primitive constants: You cannot
|
|
||||||
/// destroy an integer constant for example. This API is used to delete
|
|
||||||
/// constants that have ConstantPointerRef's embeded in them when the module
|
|
||||||
/// is deleted, and it is used by GlobalDCE to remove ConstantPointerRefs that
|
|
||||||
/// are unneeded, allowing globals to be DCE'd.
|
|
||||||
///
|
|
||||||
virtual void destroyConstant() { assert(0 && "Not reached!"); }
|
virtual void destroyConstant() { assert(0 && "Not reached!"); }
|
||||||
|
|
||||||
|
|
||||||
//// Methods for support type inquiry through isa, cast, and dyn_cast:
|
//// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||||
static inline bool classof(const Constant *) { return true; }
|
static inline bool classof(const Constant *) { return true; }
|
||||||
|
static inline bool classof(const GlobalValue *) { return true; }
|
||||||
static inline bool classof(const Value *V) {
|
static inline bool classof(const Value *V) {
|
||||||
return V->getValueType() == Value::ConstantVal;
|
return V->getValueType() == Value::ConstantVal ||
|
||||||
|
V->getValueType() == Value::FunctionVal ||
|
||||||
|
V->getValueType() == Value::GlobalVariableVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// replaceUsesOfWithOnConstant - This method is a special form of
|
/// replaceUsesOfWithOnConstant - This method is a special form of
|
||||||
|
Reference in New Issue
Block a user