mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-10-22 14:03:16 +00:00
Make changes to rev 84292 as requested by Chris Lattner.
Most changes are cleanup, but there is 1 correctness fix: I fixed InstCombine so that the icmp is removed only if the malloc call is removed (which requires explicit removal because the Worklist won't DCE any calls since they can have side-effects). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84772 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
1 parent
b27b51aaa6
commit
68afa54033
5 files changed
+47
-35
No files matched your search
@@ -2045,6 +2045,7 @@ bool BitcodeReader::ParseFunctionBody(Function *F) {
|
||||
|
||||
case bitc::FUNC_CODE_INST_MALLOC: { // MALLOC: [instty, op, align]
|
||||
// Autoupgrade malloc instruction to malloc call.
|
||||
// FIXME: Remove in LLVM 3.0.
|
||||
if (Record.size() < 3)
|
||||
return Error("Invalid MALLOC record");
|
||||
const PointerType *Ty =
|
||||
@@ -2052,13 +2053,9 @@ bool BitcodeReader::ParseFunctionBody(Function *F) {
|
||||
Value *Size = getFnValueByID(Record[1], Type::getInt32Ty(Context));
|
||||
if (!Ty || !Size) return Error("Invalid MALLOC record");
|
||||
if (!CurBB) return Error("Invalid malloc instruction with no BB");
|
||||
const Type* Int32Ty = IntegerType::getInt32Ty(CurBB->getContext());
|
||||
if (Size->getType() != Int32Ty)
|
||||
Size = CastInst::CreateIntegerCast(Size, Int32Ty, false /*ZExt*/,
|
||||
"", CurBB);
|
||||
Value* Malloc = CallInst::CreateMalloc(CurBB, Int32Ty,
|
||||
Ty->getElementType(), Size, NULL);
|
||||
I = cast<Instruction>(Malloc);
|
||||
const Type *Int32Ty = IntegerType::getInt32Ty(CurBB->getContext());
|
||||
I = CallInst::CreateMalloc(CurBB, Int32Ty, Ty->getElementType(),
|
||||
Size, NULL);
|
||||
InstructionList.push_back(I);
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user