[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