diff options
author | Chris Lattner <sabre@nondot.org> | 2002-04-28 19:55:58 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-04-28 19:55:58 +0000 |
commit | 31bcdb822fe9133b1973de51519d34e5813a6184 (patch) | |
tree | 63e213a6696aae199bddfb55496afd6523468ca1 /include | |
parent | 9ae93cdcc81c50cb865a56b51eb70b2d7d961ad6 (diff) | |
download | external_llvm-31bcdb822fe9133b1973de51519d34e5813a6184.zip external_llvm-31bcdb822fe9133b1973de51519d34e5813a6184.tar.gz external_llvm-31bcdb822fe9133b1973de51519d34e5813a6184.tar.bz2 |
Split ConstantVals.h into Constant.h and Constants.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2378 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Constant.h | 47 | ||||
-rw-r--r-- | include/llvm/ConstantHandling.h | 2 | ||||
-rw-r--r-- | include/llvm/Constants.h | 57 |
3 files changed, 54 insertions, 52 deletions
diff --git a/include/llvm/Constant.h b/include/llvm/Constant.h new file mode 100644 index 0000000..572d1d1 --- /dev/null +++ b/include/llvm/Constant.h @@ -0,0 +1,47 @@ +//===-- llvm/Constant.h - Constant class definition --------------*- C++ -*--=// +// +// This file contains the declaration of the Constant class. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CONSTANT_H +#define LLVM_CONSTANT_H + +#include "llvm/User.h" + +class Constant : public User { +protected: + inline Constant(const Type *Ty) : User(Ty, Value::ConstantVal) {} + ~Constant() {} + + // destroyConstant - Called if some element of this constant is no longer + // valid. At this point only other constants may be on the use_list for this + // constant. Any constants on our Use list must also be destroy'd. The + // implementation must be sure to remove the constant from the list of + // available cached constants. Implementations should call + // destroyConstantImpl as the last thing they do, to destroy all users and + // delete this. + // + virtual void destroyConstant() { assert(0 && "Not reached!"); } + void destroyConstantImpl(); +public: + // Specialize setName to handle symbol table majik... + virtual void setName(const std::string &name, SymbolTable *ST = 0); + + // Static constructor to get a '0' constant of arbitrary type... + static Constant *getNullValue(const Type *Ty); + + // isNullValue - Return true if this is the value that would be returned by + // getNullValue. + virtual bool isNullValue() const = 0; + + virtual void print(std::ostream &O) const; + + // Methods for support type inquiry through isa, cast, and dyn_cast: + static inline bool classof(const Constant *) { return true; } + static inline bool classof(const Value *V) { + return V->getValueType() == Value::ConstantVal; + } +}; + +#endif diff --git a/include/llvm/ConstantHandling.h b/include/llvm/ConstantHandling.h index 1479fe0..14231cb 100644 --- a/include/llvm/ConstantHandling.h +++ b/include/llvm/ConstantHandling.h @@ -33,7 +33,7 @@ #ifndef LLVM_CONSTANTHANDLING_H #define LLVM_CONSTANTHANDLING_H -#include "llvm/ConstantVals.h" +#include "llvm/Constants.h" #include "llvm/Instruction.h" #include "llvm/Type.h" class PointerType; diff --git a/include/llvm/Constants.h b/include/llvm/Constants.h index 1253974..119dd8f 100644 --- a/include/llvm/Constants.h +++ b/include/llvm/Constants.h @@ -1,65 +1,20 @@ -//===-- llvm/ConstantVals.h - Constant Value nodes ---------------*- C++ -*--=// +//===-- llvm/Constants.h - Constant class subclass definitions ---*- C++ -*--=// // -// This file contains the declarations for the Constant class and all of -// its subclasses, which represent the different type of constant pool values +// This file contains the declarations for the subclasses of Constant, which +// represent the different type of constant pool values // //===----------------------------------------------------------------------===// -#ifndef LLVM_CONSTANT_VALS_H -#define LLVM_CONSTANT_VALS_H +#ifndef LLVM_CONSTANTS_H +#define LLVM_CONSTANTS_H -#include "llvm/User.h" +#include "llvm/Constant.h" #include "Support/DataTypes.h" class ArrayType; class StructType; class PointerType; -//===----------------------------------------------------------------------===// -// Constant Class -//===----------------------------------------------------------------------===// - -class Constant : public User { -protected: - inline Constant(const Type *Ty) : User(Ty, Value::ConstantVal) {} - ~Constant() {} - - // destroyConstant - Called if some element of this constant is no longer - // valid. At this point only other constants may be on the use_list for this - // constant. Any constants on our Use list must also be destroy'd. The - // implementation must be sure to remove the constant from the list of - // available cached constants. Implementations should call - // destroyConstantImpl as the last thing they do, to destroy all users and - // delete this. - // - virtual void destroyConstant() { assert(0 && "Not reached!"); } - void destroyConstantImpl(); -public: - // Specialize setName to handle symbol table majik... - virtual void setName(const std::string &name, SymbolTable *ST = 0); - - // Static constructor to get a '0' constant of arbitrary type... - static Constant *getNullValue(const Type *Ty); - - // isNullValue - Return true if this is the value that would be returned by - // getNullValue. - virtual bool isNullValue() const = 0; - - virtual void print(std::ostream &O) const; - - // Methods for support type inquiry through isa, cast, and dyn_cast: - static inline bool classof(const Constant *) { return true; } - static inline bool classof(const Value *V) { - return V->getValueType() == Value::ConstantVal; - } -}; - - - -//===----------------------------------------------------------------------===// -// Classes to represent constant pool variable defs -//===----------------------------------------------------------------------===// - //===--------------------------------------------------------------------------- // ConstantBool - Boolean Values // |