• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/llvmCore-3425.0.34/lib/Transforms/Scalar/

Lines Matching defs:UserInst

992   /// UserInst - The instruction which will be updated.
993 Instruction *UserInst;
1025 : UserInst(0), OperandValToReplace(0), LUIdx(~size_t(0)), Offset(0) {}
1031 if (const PHINode *PN = dyn_cast<PHINode>(UserInst)) {
1039 return !L->contains(UserInst);
1043 OS << "UserInst=";
1045 if (StoreInst *Store = dyn_cast<StoreInst>(UserInst)) {
1048 } else if (UserInst->getType()->isVoidTy())
1049 OS << UserInst->getOpcodeName();
1051 WriteAsOperand(OS, UserInst, /*PrintType=*/false);
1145 /// used to formulate a replacement for OperandValToReplace in UserInst.
1443 Instruction *UserInst;
1448 UserInst(U), IVOperand(O), IncExpr(E) {}
1479 // tailUserInst - Returns the last UserInst in the chain.
1480 Instruction *tailUserInst() const { return Incs.back().UserInst; }
1545 void ChainInstruction(Instruction *UserInst, Instruction *IVOper,
2406 DEBUG(dbgs() << "Chain: " << *Chain.Incs[0].UserInst << " users:\n";
2465 DEBUG(dbgs() << "Chain: " << *Chain.Incs[0].UserInst << " Cost: " << cost
2473 void LSRInstance::ChainInstruction(Instruction *UserInst, Instruction *IVOper,
2500 if (isa<PHINode>(UserInst) && isa<PHINode>(Chain.tailUserInst()))
2517 if (isa<PHINode>(UserInst))
2530 IVChainVec.push_back(IVChain(IVInc(UserInst, IVOper, LastIncExpr),
2533 DEBUG(dbgs() << "IV Chain#" << ChainIdx << " Head: (" << *UserInst
2536 DEBUG(dbgs() << "IV Chain#" << ChainIdx << " Inc: (" << *UserInst
2539 IVChainVec[ChainIdx].add(IVInc(UserInst, IVOper, LastIncExpr));
2558 if (!OtherUse || OtherUse == UserInst)
2570 ChainUsersVec[ChainIdx].FarUsers.erase(UserInst);
2669 DEBUG(dbgs() << "Final Chain: " << *Chain.Incs[0].UserInst << "\n");
2673 DEBUG(dbgs() << " Inc: " << *I->UserInst << "\n");
2675 std::find(I->UserInst->op_begin(), I->UserInst->op_end(), I->IVOperand);
2676 assert(UseI != I->UserInst->op_end() && "cannot find IV operand");
2682 static bool canFoldIVIncExpr(const SCEV *IncExpr, Instruction *UserInst,
2685 if (!IncConst || !isAddressUse(UserInst, Operand))
2693 LSRUse::Address, getAccessType(UserInst), TLI))
2706 User::op_iterator IVOpEnd = Head.UserInst->op_end();
2707 User::op_iterator IVOpIter = findIVOperand(Head.UserInst->op_begin(),
2729 DEBUG(dbgs() << "Concealed chain head: " << *Head.UserInst << "\n");
2740 Instruction *InsertPt = IncI->UserInst;
2763 if (!canFoldIVIncExpr(LeftOverExpr, IncI->UserInst, IncI->IVOperand,
2777 IncI->UserInst->replaceUsesOfWith(IncI->IVOperand, IVOper);
2807 Instruction *UserInst = UI->getUser();
2809 User::op_iterator UseI = std::find(UserInst->op_begin(), UserInst->op_end(),
2811 assert(UseI != UserInst->op_end() && "cannot find IV operand");
2817 LF.UserInst = UserInst;
2823 if (isAddressUse(LF.UserInst, LF.OperandValToReplace)) {
2825 AccessTy = getAccessType(LF.UserInst);
2836 if (ICmpInst *CI = dyn_cast<ICmpInst>(LF.UserInst))
2962 const Instruction *UserInst = dyn_cast<Instruction>(*UI);
2964 if (!UserInst)
2968 if (UserInst->getParent()->getParent() != L->getHeader()->getParent())
2971 const BasicBlock *UseBB = !isa<PHINode>(UserInst) ?
2972 UserInst->getParent() :
2973 cast<PHINode>(UserInst)->getIncomingBlock(
2979 if (SE.isSCEVable(UserInst->getType())) {
2980 const SCEV *UserS = SE.getSCEV(const_cast<Instruction *>(UserInst));
2986 SE.getUnknown(const_cast<Instruction *>(UserInst)));
2991 if (const ICmpInst *ICI = dyn_cast<ICmpInst>(UserInst)) {
2999 LF.UserInst = const_cast<Instruction *>(UserInst);
4209 dyn_cast<Instruction>(cast<ICmpInst>(LF.UserInst)->getOperand(1)))
4302 LF.UserInst, LF.OperandValToReplace,
4316 LF.UserInst, LF.OperandValToReplace,
4402 ICmpInst *CI = cast<ICmpInst>(LF.UserInst);
4508 /// LSRUse (this is called "expanding"), and update the UserInst to reference
4515 // First, find an insertion point that dominates UserInst. For PHI nodes,
4517 if (PHINode *PN = dyn_cast<PHINode>(LF.UserInst)) {
4520 Value *FullV = Expand(LF, F, LF.UserInst, Rewriter, DeadInsts);
4527 FullV, OpTy, "tmp", LF.UserInst);
4537 LF.UserInst->setOperand(0, FullV);
4539 LF.UserInst->replaceUsesOfWith(LF.OperandValToReplace, FullV);