Lines Matching refs:User

697     for (User *U : UseInst->users()) {
855 for (User *U : Def->users()) {
952 Instruction *User = cast<Instruction>(U.getUser());
953 if (replaceIVUserWithLoopInvariant(User))
1180 /// viable location is found: it may happen if User is a PHI and Def only comes
1182 static Instruction *getInsertPointForUses(Instruction *User, Value *Def,
1184 PHINode *PHI = dyn_cast<PHINode>(User);
1186 return User;
1692 Instruction *User = cast<Instruction>(U.getUser());
1693 if (User == NarrowDef)
1695 if (!L->contains(User)) {
1696 auto *LCSSAPhi = cast<PHINode>(User);
1704 if (auto *ICmp = dyn_cast<ICmpInst>(User)) {
1718 User = dyn_cast<SExtInst>(User);
1720 User = dyn_cast<ZExtInst>(User);
1721 if (!User || User->getType() != WideType)
1723 ExtUsers.push_back(User);
1786 for (Instruction *User : ExtUsers) {
1787 assert(User->getType() == WideType && "Checked before!");
1788 LLVM_DEBUG(dbgs() << "INDVARS: eliminating " << *User << " replaced by "
1791 User->replaceAllUsesWith(WideBO);
1792 DeadInsts.emplace_back(User);
1795 for (PHINode *User : LCSSAPhiUsers) {
1796 assert(User->getNumOperands() == 1 && "Checked before!");
1797 Builder.SetInsertPoint(User);
1799 Builder.CreatePHI(WideBO->getType(), 1, User->getName() + ".wide");
1800 BasicBlock *LoopExitingBlock = User->getParent()->getSinglePredecessor();
1804 Builder.SetInsertPoint(User->getParent(),
1805 User->getParent()->getFirstInsertionPt());
1806 auto *TruncPN = Builder.CreateTrunc(WidePN, User->getType());
1807 User->replaceAllUsesWith(TruncPN);
1808 DeadInsts.emplace_back(User);
1811 for (ICmpInst *User : ICmpUsers) {
1812 Builder.SetInsertPoint(User);
1821 auto Pred = User->getPredicate();
1822 auto *LHS = ExtendedOp(User->getOperand(0));
1823 auto *RHS = ExtendedOp(User->getOperand(1));
1825 Builder.CreateICmp(Pred, LHS, RHS, User->getName() + ".wide");
1826 User->replaceAllUsesWith(WideCmp);
1827 DeadInsts.emplace_back(User);
2006 for (User *U : NarrowDef->users()) {