ConstantArray::get and ConstantStruct::get now just return pointers to

'Constant', instead of specific subclass pointers.  In the future, these will
return an instance of ConstantAggregateZero if all of the inputs are zeros.

llvm-svn: 11467
This commit is contained in:
Chris Lattner 2004-02-15 04:14:47 +00:00
parent 37a716fa80
commit 015e821279
2 changed files with 7 additions and 8 deletions

View File

@ -321,8 +321,8 @@ protected:
ConstantArray(const ArrayType *T, const std::vector<Constant*> &Val);
public:
/// get() - Static factory methods - Return objects of the specified value
static ConstantArray *get(const ArrayType *T, const std::vector<Constant*> &);
static ConstantArray *get(const std::string &Initializer);
static Constant *get(const ArrayType *T, const std::vector<Constant*> &);
static Constant *get(const std::string &Initializer);
/// getType - Specialize the getType() method to always return an ArrayType,
/// which reduces the amount of casting needed in parts of the compiler.
@ -383,8 +383,7 @@ protected:
ConstantStruct(const StructType *T, const std::vector<Constant*> &Val);
public:
/// get() - Static factory methods - Return objects of the specified value
static ConstantStruct *get(const StructType *T,
const std::vector<Constant*> &V);
static Constant *get(const StructType *T, const std::vector<Constant*> &V);
/// getType() specialization - Reduce amount of casting...
inline const StructType *getType() const {

View File

@ -786,7 +786,7 @@ namespace llvm {
static ValueMap<std::vector<Constant*>, ArrayType,
ConstantArray> ArrayConstants;
ConstantArray *ConstantArray::get(const ArrayType *Ty,
Constant *ConstantArray::get(const ArrayType *Ty,
const std::vector<Constant*> &V) {
return ArrayConstants.getOrCreate(Ty, V);
}
@ -802,7 +802,7 @@ void ConstantArray::destroyConstant() {
// contain the specified string. A null terminator is added to the specified
// string so that it may be used in a natural way...
//
ConstantArray *ConstantArray::get(const std::string &Str) {
Constant *ConstantArray::get(const std::string &Str) {
std::vector<Constant*> ElementVals;
for (unsigned i = 0; i < Str.length(); ++i)
@ -866,8 +866,8 @@ namespace llvm {
static ValueMap<std::vector<Constant*>, StructType,
ConstantStruct> StructConstants;
ConstantStruct *ConstantStruct::get(const StructType *Ty,
const std::vector<Constant*> &V) {
Constant *ConstantStruct::get(const StructType *Ty,
const std::vector<Constant*> &V) {
return StructConstants.getOrCreate(Ty, V);
}