Lines Matching refs:UserInst

1259   Instruction *UserInst = nullptr;  member
1560 Offset, F.HasBaseReg, F.Scale, Fixup.UserInst)) in RateFormula()
1659 if (const PHINode *PN = dyn_cast<PHINode>(UserInst)) { in isUseFullyOutsideLoop()
1667 return !L->contains(UserInst); in isUseFullyOutsideLoop()
1674 if (StoreInst *Store = dyn_cast<StoreInst>(UserInst)) { in print()
1677 } else if (UserInst->getType()->isVoidTy()) in print()
1678 OS << UserInst->getOpcodeName(); in print()
1680 UserInst->printAsOperand(OS, /*PrintType=*/false); in print()
1958 F.Scale, Fixup.UserInst)) in isAMCompletelyFolded()
2088 Instruction *UserInst; member
2093 : UserInst(U), IVOperand(O), IncExpr(E) {} in IVInc()
2124 Instruction *tailUserInst() const { return Incs.back().UserInst; } in tailUserInst()
2201 void ChainInstruction(Instruction *UserInst, Instruction *IVOper,
3076 LLVM_DEBUG(dbgs() << "Chain: " << *Chain.Incs[0].UserInst << " users:\n"; in isProfitableChain()
3098 if (TTI.isProfitableLSRChainElement(Chain.Incs[0].UserInst)) in isProfitableChain()
3102 if (TTI.isProfitableLSRChainElement(Inc.UserInst)) in isProfitableChain()
3137 LLVM_DEBUG(dbgs() << "Chain: " << *Chain.Incs[0].UserInst << " Cost: " << cost in isProfitableChain()
3144 void LSRInstance::ChainInstruction(Instruction *UserInst, Instruction *IVOper, in ChainInstruction() argument
3171 if (isa<PHINode>(UserInst) && isa<PHINode>(Chain.tailUserInst())) in ChainInstruction()
3188 if (isa<PHINode>(UserInst)) in ChainInstruction()
3201 IVChainVec.push_back(IVChain(IVInc(UserInst, IVOper, LastIncExpr), in ChainInstruction()
3204 LLVM_DEBUG(dbgs() << "IV Chain#" << ChainIdx << " Head: (" << *UserInst in ChainInstruction()
3207 LLVM_DEBUG(dbgs() << "IV Chain#" << ChainIdx << " Inc: (" << *UserInst in ChainInstruction()
3210 IVChainVec[ChainIdx].add(IVInc(UserInst, IVOper, LastIncExpr)); in ChainInstruction()
3236 if (IncIter->UserInst == OtherUse) in ChainInstruction()
3252 ChainUsersVec[ChainIdx].FarUsers.erase(UserInst); in ChainInstruction()
3347 LLVM_DEBUG(dbgs() << "Final Chain: " << *Chain.Incs[0].UserInst << "\n"); in FinalizeChain()
3350 LLVM_DEBUG(dbgs() << " Inc: " << *Inc.UserInst << "\n"); in FinalizeChain()
3351 auto UseI = find(Inc.UserInst->operands(), Inc.IVOperand); in FinalizeChain()
3352 assert(UseI != Inc.UserInst->op_end() && "cannot find IV operand"); in FinalizeChain()
3358 static bool canFoldIVIncExpr(const SCEV *IncExpr, Instruction *UserInst, in canFoldIVIncExpr() argument
3378 if (!isAddressUse(TTI, UserInst, Operand)) in canFoldIVIncExpr()
3381 MemAccessTy AccessTy = getAccessType(TTI, UserInst, Operand); in canFoldIVIncExpr()
3396 User::op_iterator IVOpEnd = Head.UserInst->op_end(); in GenerateIVChain()
3398 User::op_iterator IVOpIter = findIVOperand(Head.UserInst->op_begin(), in GenerateIVChain()
3420 LLVM_DEBUG(dbgs() << "Concealed chain head: " << *Head.UserInst << "\n"); in GenerateIVChain()
3434 Instruction *InsertPt = Inc.UserInst; in GenerateIVChain()
3454 if (canFoldIVIncExpr(Remainder, Inc.UserInst, Inc.IVOperand, TTI)) { in GenerateIVChain()
3478 if (!canFoldIVIncExpr(LeftOverExpr, Inc.UserInst, Inc.IVOperand, TTI)) { in GenerateIVChain()
3492 Inc.UserInst->replaceUsesOfWith(Inc.IVOperand, IVOper); in GenerateIVChain()
3530 Instruction *UserInst = U.getUser(); in CollectFixupsAndInitialFormulae() local
3533 find(UserInst->operands(), U.getOperandValToReplace()); in CollectFixupsAndInitialFormulae()
3534 assert(UseI != UserInst->op_end() && "cannot find IV operand"); in CollectFixupsAndInitialFormulae()
3542 if (isAddressUse(TTI, UserInst, U.getOperandValToReplace())) { in CollectFixupsAndInitialFormulae()
3544 AccessTy = getAccessType(TTI, UserInst, U.getOperandValToReplace()); in CollectFixupsAndInitialFormulae()
3558 if (ICmpInst *CI = dyn_cast<ICmpInst>(UserInst)) { in CollectFixupsAndInitialFormulae()
3622 LF.UserInst = UserInst; in CollectFixupsAndInitialFormulae()
3737 const Instruction *UserInst = dyn_cast<Instruction>(U.getUser()); in CollectLoopInvariantFixupsAndFormulae() local
3739 if (!UserInst) in CollectLoopInvariantFixupsAndFormulae()
3742 if (UserInst->isEHPad()) in CollectLoopInvariantFixupsAndFormulae()
3746 if (UserInst->getParent()->getParent() != L->getHeader()->getParent()) in CollectLoopInvariantFixupsAndFormulae()
3749 const BasicBlock *UseBB = !isa<PHINode>(UserInst) ? in CollectLoopInvariantFixupsAndFormulae()
3750 UserInst->getParent() : in CollectLoopInvariantFixupsAndFormulae()
3751 cast<PHINode>(UserInst)->getIncomingBlock( in CollectLoopInvariantFixupsAndFormulae()
3766 if (isa<PHINode>(UserInst)) { in CollectLoopInvariantFixupsAndFormulae()
3767 const auto *PhiNode = cast<PHINode>(UserInst); in CollectLoopInvariantFixupsAndFormulae()
3784 if (isa<CatchSwitchInst>(UserInst->getParent()->getTerminator())) in CollectLoopInvariantFixupsAndFormulae()
3788 if (SE.isSCEVable(UserInst->getType())) { in CollectLoopInvariantFixupsAndFormulae()
3789 const SCEV *UserS = SE.getSCEV(const_cast<Instruction *>(UserInst)); in CollectLoopInvariantFixupsAndFormulae()
3795 SE.getUnknown(const_cast<Instruction *>(UserInst))); in CollectLoopInvariantFixupsAndFormulae()
3800 if (const ICmpInst *ICI = dyn_cast<ICmpInst>(UserInst)) { in CollectLoopInvariantFixupsAndFormulae()
3813 LF.UserInst = const_cast<Instruction *>(UserInst); in CollectLoopInvariantFixupsAndFormulae()
5632 dyn_cast<Instruction>(cast<ICmpInst>(LF.UserInst)->getOperand(1))) in AdjustInsertPositionForExpand()
5830 ICmpInst *CI = cast<ICmpInst>(LF.UserInst); in Expand()
5965 if (Fixup.UserInst == PN) { in RewriteForPHI()
5988 Fixup.UserInst = NewPN; in RewriteForPHI()
6005 if (PHINode *PN = dyn_cast<PHINode>(LF.UserInst)) { in Rewrite()
6008 Value *FullV = Expand(LU, LF, F, LF.UserInst->getIterator(), DeadInsts); in Rewrite()
6015 FullV, OpTy, "tmp", LF.UserInst->getIterator()); in Rewrite()
6025 LF.UserInst->setOperand(0, FullV); in Rewrite()
6027 LF.UserInst->replaceUsesOfWith(LF.OperandValToReplace, FullV); in Rewrite()
6057 Instruction *I = Fixup.UserInst; in canHoistIVInc()