Allow arrays to have more than 4G elements.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19395 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2005-01-08 20:19:51 +00:00
parent 723a912261
commit 7d7a0ed4ec

View File

@ -401,7 +401,7 @@ StructType::StructType(const std::vector<const Type*> &Types)
setAbstract(isAbstract); setAbstract(isAbstract);
} }
ArrayType::ArrayType(const Type *ElType, unsigned NumEl) ArrayType::ArrayType(const Type *ElType, uint64_t NumEl)
: SequentialType(ArrayTyID, ElType) { : SequentialType(ArrayTyID, ElType) {
NumElements = NumEl; NumElements = NumEl;
@ -894,16 +894,16 @@ FunctionType *FunctionType::get(const Type *ReturnType,
namespace llvm { namespace llvm {
class ArrayValType { class ArrayValType {
const Type *ValTy; const Type *ValTy;
unsigned Size; uint64_t Size;
public: public:
ArrayValType(const Type *val, int sz) : ValTy(val), Size(sz) {} ArrayValType(const Type *val, uint64_t sz) : ValTy(val), Size(sz) {}
static ArrayValType get(const ArrayType *AT) { static ArrayValType get(const ArrayType *AT) {
return ArrayValType(AT->getElementType(), AT->getNumElements()); return ArrayValType(AT->getElementType(), AT->getNumElements());
} }
static unsigned hashTypeStructure(const ArrayType *AT) { static unsigned hashTypeStructure(const ArrayType *AT) {
return AT->getNumElements(); return (unsigned)AT->getNumElements();
} }
// Subclass should override this... to update self as usual // Subclass should override this... to update self as usual
@ -921,7 +921,7 @@ public:
static TypeMap<ArrayValType, ArrayType> ArrayTypes; static TypeMap<ArrayValType, ArrayType> ArrayTypes;
ArrayType *ArrayType::get(const Type *ElementType, unsigned NumElements) { ArrayType *ArrayType::get(const Type *ElementType, uint64_t NumElements) {
assert(ElementType && "Can't get array of null types!"); assert(ElementType && "Can't get array of null types!");
ArrayValType AVT(ElementType, NumElements); ArrayValType AVT(ElementType, NumElements);