[llvm-commits] [llvm] r92412 - in /llvm/trunk: lib/Transforms/Scalar/InstructionCombining.cpp test/Transforms/InstCombine/load-cmp.ll
Eli Friedman
eli.friedman at gmail.com
Sat Jan 2 00:36:18 PST 2010
On Sat, Jan 2, 2010 at 12:20 AM, Chris Lattner <sabre at nondot.org> wrote:
> Author: lattner
> Date: Sat Jan 2 02:20:51 2010
> New Revision: 92412
>
> URL: http://llvm.org/viewvc/llvm-project?rev=92412&view=rev
> Log:
> enhance the previous optimization to work with fcmp in addition
> to icmp.
>
> Modified:
> llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
> llvm/trunk/test/Transforms/InstCombine/load-cmp.ll
>
> Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=92412&r1=92411&r2=92412&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Sat Jan 2 02:20:51 2010
> @@ -6180,7 +6180,7 @@
> if (Instruction *NV = FoldFCmp_IntToFP_Cst(I, LHSI, RHSC))
> 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.
> @@ -6205,6 +6205,20 @@
> return SelectInst::Create(LHSI->getOperand(0), Op1, Op2);
> break;
> }
> + case Instruction::Load:
> + if (GetElementPtrInst *GEP =
> + dyn_cast<GetElementPtrInst>(LHSI->getOperand(0))) {
> + if (GlobalVariable *GV = dyn_cast<GlobalVariable>(GEP->getOperand(0)))
> + if (GV->isConstant() && GV->hasDefinitiveInitializer() &&
> + !cast<LoadInst>(LHSI)->isVolatile())
> + if (Instruction *Res = FoldCmpLoadFromIndexedGlobal(GEP, GV, I))
> + return Res;
> + //errs() << "NOT HANDLED: " << *GV << "\n";
> + //errs() << "\t" << *GEP << "\n";
> + //errs() << "\t " << I << "\n\n\n";
I assume you didn't mean to add the debugging output?
-Eli
More information about the llvm-commits
mailing list