diff --git a/lib/Transforms/Scalar/InstructionCombining.cpp b/lib/Transforms/Scalar/InstructionCombining.cpp index 67b99c56e7e..7ef1b560477 100644 --- a/lib/Transforms/Scalar/InstructionCombining.cpp +++ b/lib/Transforms/Scalar/InstructionCombining.cpp @@ -1475,6 +1475,13 @@ Instruction *InstCombiner::visitSetCondInst(BinaryOperator &I) { // integers at the end of their ranges... // if (ConstantInt *CI = dyn_cast(Op1)) { + if (Instruction *LHSI = dyn_cast(Op0)) + if (LHSI->getOpcode() == Instruction::Div && LHSI->hasOneUse() && + isa(LHSI->getOperand(1))) { + std::cerr << "COULD FOLD: " << *LHSI; + std::cerr << "COULD FOLD: " << I << "\n"; + } + // Simplify seteq and setne instructions... if (I.getOpcode() == Instruction::SetEQ || I.getOpcode() == Instruction::SetNE) { diff --git a/lib/Transforms/Scalar/LoopUnroll.cpp b/lib/Transforms/Scalar/LoopUnroll.cpp index 33148200b46..a9cced5ce14 100644 --- a/lib/Transforms/Scalar/LoopUnroll.cpp +++ b/lib/Transforms/Scalar/LoopUnroll.cpp @@ -139,9 +139,9 @@ bool LoopUnroll::visitLoop(Loop *L) { DEBUG(std::cerr << "Loop Unroll: F[" << BB->getParent()->getName() << "] Loop %" << BB->getName() << " Loop Size = " << LoopSize << " Trip Count = " << TripCount << " - "); - if (LoopSize*TripCount > UnrollThreshold) { - DEBUG(std::cerr << "TOO LARGE: " << LoopSize*TripCount << ">" - << UnrollThreshold << "\n"); + uint64_t Size = (uint64_t)LoopSize*(uint64_t)TripCount; + if (Size > UnrollThreshold) { + DEBUG(std::cerr << "TOO LARGE: " << Size << ">" << UnrollThreshold << "\n"); return Changed; } DEBUG(std::cerr << "UNROLLING!\n");