Changes in directory llvm/lib/Transforms/Scalar:
InstructionCombining.cpp updated: 1.577 -> 1.578 --- Log message: Death to useless bitcast instructions! --- Diffs of the changes: (+3 -33) InstructionCombining.cpp | 36 +++--------------------------------- 1 files changed, 3 insertions(+), 33 deletions(-) Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.577 llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.578 --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.577 Sat Dec 30 23:48:39 2006 +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Wed Jan 3 23:23:51 2007 @@ -1998,9 +1998,6 @@ // FIXME: Once integer types are signless, this cast should be // removed. Value *ShiftOp = SI->getOperand(0); - if (ShiftOp->getType() != I.getType()) - ShiftOp = InsertCastBefore(Instruction::BitCast, ShiftOp, - I.getType(), I); return new ShiftInst(Instruction::AShr, ShiftOp, CU, SI->getName()); } @@ -4267,10 +4264,6 @@ else if (NumDifferences == 1) { Value *LHSV = GEPLHS->getOperand(DiffOperand); Value *RHSV = GEPRHS->getOperand(DiffOperand); - if (LHSV->getType() != RHSV->getType()) - // Doesn't matter which one we bitconvert here. - LHSV = InsertCastBefore(Instruction::BitCast, LHSV, RHSV->getType(), - I); // Make sure we do a signed comparison here. return new ICmpInst(ICmpInst::getSignedPredicate(Cond), LHSV, RHSV); } @@ -4651,14 +4644,7 @@ else NewAndCST = ConstantExpr::getShl(AndCST, ShAmt); LHSI->setOperand(1, NewAndCST); - if (AndTy == Ty) - LHSI->setOperand(0, Shift->getOperand(0)); - else { - Value *NewCast = InsertCastBefore(Instruction::BitCast, - Shift->getOperand(0), AndTy, - *Shift); - LHSI->setOperand(0, NewCast); - } + LHSI->setOperand(0, Shift->getOperand(0)); WorkList.push_back(Shift); // Shift is dead. AddUsesToWorkList(I); return &I; @@ -4684,19 +4670,9 @@ } InsertNewInstBefore(cast<Instruction>(NS), I); - // If C's sign doesn't agree with the and, insert a cast now. - if (NS->getType() != LHSI->getType()) - NS = InsertCastBefore(Instruction::BitCast, NS, LHSI->getType(), - I); - - Value *ShiftOp = Shift->getOperand(0); - if (ShiftOp->getType() != LHSI->getType()) - ShiftOp = InsertCastBefore(Instruction::BitCast, ShiftOp, - LHSI->getType(), I); - // Compute X & (C << Y). - Instruction *NewAnd = - BinaryOperator::createAnd(ShiftOp, NS, LHSI->getName()); + Instruction *NewAnd = BinaryOperator::createAnd( + Shift->getOperand(0), NS, LHSI->getName()); InsertNewInstBefore(NewAnd, I); I.setOperand(0, NewAnd); @@ -5630,8 +5606,6 @@ C = ConstantExpr::getLShr(C, ShiftAmt1C); Value *Op = ShiftOp->getOperand(0); - if (Op->getType() != C->getType()) - Op = InsertCastBefore(Instruction::BitCast, Op, I.getType(), I); Instruction *Mask = BinaryOperator::createAnd(Op, C, Op->getName()+".mask"); @@ -6070,10 +6044,6 @@ ConstantInt::get(Type::Int64Ty, (1ULL << SrcBitSize)-1); if (DestBitSize < 64) C = ConstantExpr::getTrunc(C, DestTy); - else { - assert(DestBitSize == 64); - C = ConstantExpr::getBitCast(C, DestTy); - } return BinaryOperator::createAnd(Res, C); } case Instruction::SExt: _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits