mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-14 06:37:33 +00:00
implement Transforms/InstCombine/malloc2.ll and PR1313
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35700 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b62eee4a69
commit
4802d90ca8
@ -4744,7 +4744,7 @@ Instruction *InstCombiner::visitICmpInst(ICmpInst &I) {
|
||||
if (Instruction *NV = FoldOpIntoPhi(I))
|
||||
return NV;
|
||||
break;
|
||||
case Instruction::Select:
|
||||
case Instruction::Select: {
|
||||
// If either operand of the select is a constant, we can fold the
|
||||
// comparison into the select arms, which will cause one to be
|
||||
// constant folded and the select turned into a bitwise or.
|
||||
@ -4771,6 +4771,16 @@ Instruction *InstCombiner::visitICmpInst(ICmpInst &I) {
|
||||
return new SelectInst(LHSI->getOperand(0), Op1, Op2);
|
||||
break;
|
||||
}
|
||||
case Instruction::Malloc:
|
||||
// If we have (malloc != null), and if the malloc has a single use, we
|
||||
// can assume it is successful and remove the malloc.
|
||||
if (LHSI->hasOneUse() && isa<ConstantPointerNull>(RHSC)) {
|
||||
AddToWorkList(LHSI);
|
||||
return ReplaceInstUsesWith(I, ConstantInt::get(Type::Int1Ty,
|
||||
!isTrueWhenEqual(I)));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// If we can optimize a 'icmp GEP, P' or 'icmp P, GEP', do so now.
|
||||
|
Loading…
x
Reference in New Issue
Block a user