Lines Matching defs:IVOper
2202 void ChainInstruction(Instruction *UserInst, Instruction *IVOper,
2994 /// forming chains across objects, such as: PrevOper==a[i], IVOper==b[i],
3145 void LSRInstance::ChainInstruction(Instruction *UserInst, Instruction *IVOper,
3149 Value *const NextIV = getWideOperand(IVOper);
3153 // Visit all existing chains. Check if its IVOper can be computed as a
3202 IVChainVec.push_back(IVChain(IVInc(UserInst, IVOper, LastIncExpr),
3211 IVChainVec[ChainIdx].add(IVInc(UserInst, IVOper, LastIncExpr));
3228 for (User *U : IVOper->users()) {
3439 // IVOper will replace the current IV User's operand. IVSrc is the IV
3441 Value *IVOper = IVSrc;
3461 IVOper = Rewriter.expandCodeFor(IVOperExpr, IVTy, InsertPt);
3463 IVOper = MapIVOper;
3476 IVOper = Rewriter.expandCodeFor(IVOperExpr, IVTy, InsertPt);
3480 assert(IVTy == IVOper->getType() && "inconsistent IV increment type");
3481 Bases.emplace_back(Accum, IVOper);
3482 IVSrc = IVOper;
3491 IVOper = Builder.CreateTruncOrBitCast(IVOper, OperTy, "lsr.chain");
3493 Inc.UserInst->replaceUsesOfWith(Inc.IVOperand, IVOper);
3507 Value *IVOper = IVSrc;
3513 IVOper = Builder.CreatePointerCast(IVSrc, PostIncTy, "lsr.chain");
3515 Phi.replaceUsesOfWith(PostIncV, IVOper);