diff options
author | Dan Gohman <gohman@apple.com> | 2010-05-28 01:14:11 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2010-05-28 01:14:11 +0000 |
commit | f75a7d3fbf7fbb3071f45e248d3fb93312ec4fbd (patch) | |
tree | 8de936a75e71c78268a937ba4aecddde53052446 /lib/AsmParser | |
parent | 5ddb087f7fea1c4898d233a6cad6589d6f0a0b11 (diff) | |
download | external_llvm-f75a7d3fbf7fbb3071f45e248d3fb93312ec4fbd.zip external_llvm-f75a7d3fbf7fbb3071f45e248d3fb93312ec4fbd.tar.gz external_llvm-f75a7d3fbf7fbb3071f45e248d3fb93312ec4fbd.tar.bz2 |
Eliminate the restriction that the array size in an alloca must be i32.
This will help reduce the amount of casting required on 64-bit targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104911 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AsmParser')
-rw-r--r-- | lib/AsmParser/LLParser.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/AsmParser/LLParser.cpp b/lib/AsmParser/LLParser.cpp index 226d8d3..1cd66e5 100644 --- a/lib/AsmParser/LLParser.cpp +++ b/lib/AsmParser/LLParser.cpp @@ -3791,8 +3791,8 @@ int LLParser::ParseAlloc(Instruction *&Inst, PerFunctionState &PFS, } } - if (Size && !Size->getType()->isIntegerTy(32)) - return Error(SizeLoc, "element count must be i32"); + if (Size && !Size->getType()->isIntegerTy()) + return Error(SizeLoc, "element count must have integer type"); if (isAlloca) { Inst = new AllocaInst(Ty, Size, Alignment); @@ -3801,6 +3801,8 @@ int LLParser::ParseAlloc(Instruction *&Inst, PerFunctionState &PFS, // Autoupgrade old malloc instruction to malloc call. // FIXME: Remove in LLVM 3.0. + if (Size && !Size->getType()->isIntegerTy(32)) + return Error(SizeLoc, "element count must be i32"); const Type *IntPtrTy = Type::getInt32Ty(Context); Constant *AllocSize = ConstantExpr::getSizeOf(Ty); AllocSize = ConstantExpr::getTruncOrBitCast(AllocSize, IntPtrTy); |