Lines Matching defs:IncExpr
2082 /// For the head of a chain, IncExpr holds the absolute SCEV expression for the
2085 /// IncExpr can be used to find the new IVOperand that computes the same
2090 const SCEV *IncExpr;
2093 : UserInst(U), IVOperand(O), IncExpr(E) {}
2126 // Returns true if IncExpr can be profitably added to this chain.
2128 const SCEV *IncExpr,
3037 const SCEV *IncExpr,
3045 if (!isa<SCEVConstant>(IncExpr)) {
3052 return !isHighCostExpansion(IncExpr, Processed, SE);
3090 && SE.getSCEV(Chain.tailUserInst()) == Chain.Incs[0].IncExpr) {
3104 if (Inc.IncExpr->isZero())
3109 if (isa<SCEVConstant>(Inc.IncExpr)) {
3114 if (Inc.IncExpr == LastIncExpr)
3119 LastIncExpr = Inc.IncExpr;
3176 const SCEV *IncExpr = SE.getMinusSCEV(OperExpr, PrevExpr);
3177 if (isa<SCEVCouldNotCompute>(IncExpr) || !SE.isLoopInvariant(IncExpr, L))
3180 if (Chain.isProfitableIncrement(OperExpr, IncExpr, SE)) {
3181 LastIncExpr = IncExpr;
3358 static bool canFoldIVIncExpr(const SCEV *IncExpr, Instruction *UserInst,
3360 const SCEVConstant *IncConst = dyn_cast<SCEVConstant>(IncExpr);
3368 auto *IncVScale = dyn_cast<SCEVMulExpr>(IncExpr);
3407 // Note that if Head.IncExpr is wider than IVSrc, then this phi is too
3411 // getSCEV(IVSrc) == IncExpr.
3412 if (SE.getSCEV(*IVOpIter) == Head.IncExpr
3413 || SE.getSCEV(IVSrc) == Head.IncExpr) {
3441 if (!Inc.IncExpr->isZero()) {
3442 // IncExpr was the result of subtraction of two narrow values, so must
3444 const SCEV *IncExpr = SE.getNoopOrSignExtend(Inc.IncExpr, IntTy);
3445 Accum = SE.getAddExpr(Accum, IncExpr);
3447 SE.getAddExpr(LeftOverExpr, IncExpr) : IncExpr;