mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-14 15:28:20 +00:00
* AllocationInst ctor moved here from iMemory.h
* AllocationInst now always has an array size operand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1939 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -12,6 +12,21 @@ static inline const Type *checkType(const Type *Ty) {
|
|||||||
return Ty;
|
return Ty;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AllocationInst::AllocationInst(const Type *Ty, Value *ArraySize, unsigned iTy,
|
||||||
|
const std::string &Name = "")
|
||||||
|
: Instruction(Ty, iTy, Name) {
|
||||||
|
assert(Ty->isPointerType() && "Can't allocate a non pointer type!");
|
||||||
|
|
||||||
|
// ArraySize defaults to 1.
|
||||||
|
if (!ArraySize) ArraySize = ConstantUInt::get(Type::UIntTy, 1);
|
||||||
|
|
||||||
|
Operands.reserve(1);
|
||||||
|
assert(ArraySize->getType() == Type::UIntTy &&
|
||||||
|
"Malloc/Allocation array size != UIntTy!");
|
||||||
|
|
||||||
|
Operands.push_back(Use(ArraySize, this));
|
||||||
|
}
|
||||||
|
|
||||||
bool AllocationInst::isArrayAllocation() const {
|
bool AllocationInst::isArrayAllocation() const {
|
||||||
return getNumOperands() == 1 &&
|
return getNumOperands() == 1 &&
|
||||||
getOperand(0) != ConstantUInt::get(Type::UIntTy, 1);
|
getOperand(0) != ConstantUInt::get(Type::UIntTy, 1);
|
||||||
|
Reference in New Issue
Block a user