[llvm-commits] [llvm] r132167 - in /llvm/trunk/lib/Transforms/InstCombine: InstCombineCalls.cpp InstCombineCasts.cpp InstCombineLoadStoreAlloca.cpp InstCombinePHI.cpp InstructionCombining.cpp
Devang Patel
dpatel at apple.com
Fri May 27 09:57:53 PDT 2011
On May 26, 2011, at 5:19 PM, Eli Friedman wrote:
> Author: efriedma
> Date: Thu May 26 19:19:40 2011
> New Revision: 132167
>
> URL: http://llvm.org/viewvc/llvm-project?rev=132167&view=rev
> Log:
> Final step of instcombine debuginfo; switch a couple more places over to InsertNewInstWith, and use setDebugLoc for the cases which can't be easily handled by the automated mechanisms.
>
Thanks!
-
Devang
>
> Modified:
> llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp
> llvm/trunk/lib/Transforms/InstCombine/InstCombineCasts.cpp
> llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
> llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp
> llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp
>
> Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp?rev=132167&r1=132166&r2=132167&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp (original)
> +++ llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp Thu May 26 19:19:40 2011
> @@ -1130,6 +1130,7 @@
> Instruction::CastOps opcode =
> CastInst::getCastOpcode(NC, false, OldRetTy, false);
> NV = NC = CastInst::Create(opcode, NC, OldRetTy, "tmp");
> + NC->setDebugLoc(Caller->getDebugLoc());
>
> // If this is an invoke instruction, we should insert it after the first
> // non-phi, instruction in the normal successor block.
>
> Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombineCasts.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineCasts.cpp?rev=132167&r1=132166&r2=132167&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/InstCombine/InstCombineCasts.cpp (original)
> +++ llvm/trunk/lib/Transforms/InstCombine/InstCombineCasts.cpp Thu May 26 19:19:40 2011
> @@ -211,7 +211,7 @@
> }
>
> Res->takeName(I);
> - return InsertNewInstBefore(Res, *I);
> + return InsertNewInstWith(Res, *I);
> }
>
>
>
> Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp?rev=132167&r1=132166&r2=132167&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp (original)
> +++ llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp Thu May 26 19:19:40 2011
> @@ -602,10 +602,12 @@
> // Advance to a place where it is safe to insert the new store and
> // insert it.
> BBI = DestBB->getFirstNonPHI();
> - InsertNewInstBefore(new StoreInst(MergedVal, SI.getOperand(1),
> - OtherStore->isVolatile(),
> - SI.getAlignment()), *BBI);
> -
> + StoreInst *NewSI = new StoreInst(MergedVal, SI.getOperand(1),
> + OtherStore->isVolatile(),
> + SI.getAlignment());
> + InsertNewInstBefore(NewSI, *BBI);
> + NewSI->setDebugLoc(OtherStore->getDebugLoc());
> +
> // Nuke the old stores.
> EraseInstFromFunction(SI);
> EraseInstFromFunction(*OtherStore);
>
> Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp?rev=132167&r1=132166&r2=132167&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp (original)
> +++ llvm/trunk/lib/Transforms/InstCombine/InstCombinePHI.cpp Thu May 26 19:19:40 2011
> @@ -110,16 +110,20 @@
> }
> }
>
> - if (CmpInst *CIOp = dyn_cast<CmpInst>(FirstInst))
> - return CmpInst::Create(CIOp->getOpcode(), CIOp->getPredicate(),
> - LHSVal, RHSVal);
> -
> + if (CmpInst *CIOp = dyn_cast<CmpInst>(FirstInst)) {
> + CmpInst *NewCI = CmpInst::Create(CIOp->getOpcode(), CIOp->getPredicate(),
> + LHSVal, RHSVal);
> + NewCI->setDebugLoc(FirstInst->getDebugLoc());
> + return NewCI;
> + }
> +
> BinaryOperator *BinOp = cast<BinaryOperator>(FirstInst);
> BinaryOperator *NewBinOp =
> BinaryOperator::Create(BinOp->getOpcode(), LHSVal, RHSVal);
> if (isNUW) NewBinOp->setHasNoUnsignedWrap();
> if (isNSW) NewBinOp->setHasNoSignedWrap();
> if (isExact) NewBinOp->setIsExact();
> + NewBinOp->setDebugLoc(FirstInst->getDebugLoc());
> return NewBinOp;
> }
>
> @@ -228,6 +232,7 @@
> GetElementPtrInst::Create(Base, FixedOperands.begin()+1,
> FixedOperands.end());
> if (AllInBounds) NewGEP->setIsInBounds();
> + NewGEP->setDebugLoc(FirstInst->getDebugLoc());
> return NewGEP;
> }
>
> @@ -369,7 +374,9 @@
> for (unsigned i = 0, e = PN.getNumIncomingValues(); i != e; ++i)
> cast<LoadInst>(PN.getIncomingValue(i))->setVolatile(false);
>
> - return new LoadInst(PhiVal, "", isVolatile, LoadAlignment);
> + LoadInst *NewLI = new LoadInst(PhiVal, "", isVolatile, LoadAlignment);
> + NewLI->setDebugLoc(FirstLI->getDebugLoc());
> + return NewLI;
> }
>
>
> @@ -469,20 +476,27 @@
> }
>
> // Insert and return the new operation.
> - if (CastInst *FirstCI = dyn_cast<CastInst>(FirstInst))
> - return CastInst::Create(FirstCI->getOpcode(), PhiVal, PN.getType());
> + if (CastInst *FirstCI = dyn_cast<CastInst>(FirstInst)) {
> + CastInst *NewCI = CastInst::Create(FirstCI->getOpcode(), PhiVal,
> + PN.getType());
> + NewCI->setDebugLoc(FirstInst->getDebugLoc());
> + return NewCI;
> + }
>
> if (BinaryOperator *BinOp = dyn_cast<BinaryOperator>(FirstInst)) {
> BinOp = BinaryOperator::Create(BinOp->getOpcode(), PhiVal, ConstantOp);
> if (isNUW) BinOp->setHasNoUnsignedWrap();
> if (isNSW) BinOp->setHasNoSignedWrap();
> if (isExact) BinOp->setIsExact();
> + BinOp->setDebugLoc(FirstInst->getDebugLoc());
> return BinOp;
> }
>
> CmpInst *CIOp = cast<CmpInst>(FirstInst);
> - return CmpInst::Create(CIOp->getOpcode(), CIOp->getPredicate(),
> - PhiVal, ConstantOp);
> + CmpInst *NewCI = CmpInst::Create(CIOp->getOpcode(), CIOp->getPredicate(),
> + PhiVal, ConstantOp);
> + NewCI->setDebugLoc(FirstInst->getDebugLoc());
> + return NewCI;
> }
>
> /// DeadPHICycle - Return true if this PHI node is only used by a PHI node cycle
>
> Modified: llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp?rev=132167&r1=132166&r2=132167&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp (original)
> +++ llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp Thu May 26 19:19:40 2011
> @@ -241,7 +241,7 @@
>
> Constant *Folded = ConstantExpr::get(Opcode, C1, C2);
> Instruction *New = BinaryOperator::Create(Opcode, A, B);
> - InsertNewInstBefore(New, I);
> + InsertNewInstWith(New, I);
> New->takeName(Op1);
> I.setOperand(0, New);
> I.setOperand(1, Folded);
> @@ -1591,7 +1591,8 @@
> DEBUG(errs() << "IC: Old = " << *I << '\n'
> << " New = " << *Result << '\n');
>
> - Result->setDebugLoc(I->getDebugLoc());
> + if (!I->getDebugLoc().isUnknown())
> + Result->setDebugLoc(I->getDebugLoc());
> // Everything uses the new instruction now.
> I->replaceAllUsesWith(Result);
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list