Lines Matching defs:IVOper
2201 void ChainInstruction(Instruction *UserInst, Instruction *IVOper,
2993 /// forming chains across objects, such as: PrevOper==a[i], IVOper==b[i],
3144 void LSRInstance::ChainInstruction(Instruction *UserInst, Instruction *IVOper,
3148 Value *const NextIV = getWideOperand(IVOper);
3152 // Visit all existing chains. Check if its IVOper can be computed as a
3201 IVChainVec.push_back(IVChain(IVInc(UserInst, IVOper, LastIncExpr),
3210 IVChainVec[ChainIdx].add(IVInc(UserInst, IVOper, LastIncExpr));
3227 for (User *U : IVOper->users()) {
3438 // IVOper will replace the current IV User's operand. IVSrc is the IV
3440 Value *IVOper = IVSrc;
3460 IVOper = Rewriter.expandCodeFor(IVOperExpr, IVTy, InsertPt);
3462 IVOper = MapIVOper;
3475 IVOper = Rewriter.expandCodeFor(IVOperExpr, IVTy, InsertPt);
3479 assert(IVTy == IVOper->getType() && "inconsistent IV increment type");
3480 Bases.emplace_back(Accum, IVOper);
3481 IVSrc = IVOper;
3490 IVOper = Builder.CreateTruncOrBitCast(IVOper, OperTy, "lsr.chain");
3492 Inc.UserInst->replaceUsesOfWith(Inc.IVOperand, IVOper);
3506 Value *IVOper = IVSrc;
3512 IVOper = Builder.CreatePointerCast(IVSrc, PostIncTy, "lsr.chain");
3514 Phi.replaceUsesOfWith(PostIncV, IVOper);