mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-20 14:29:27 +00:00
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:
parent
723a912261
commit
7d7a0ed4ec
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user