Lines Matching defs:IncExpr

2077 /// For the head of a chain, IncExpr holds the absolute SCEV expression for the
2080 /// IncExpr can be used to find the new IVOperand that computes the same
2085 const SCEV *IncExpr;
2088 : UserInst(U), IVOperand(O), IncExpr(E) {}
2121 // Returns true if IncExpr can be profitably added to this chain.
2123 const SCEV *IncExpr,
3038 const SCEV *IncExpr,
3046 if (!isa<SCEVConstant>(IncExpr)) {
3053 return !isHighCostExpansion(IncExpr, Processed, SE);
3091 && SE.getSCEV(Chain.tailUserInst()) == Chain.Incs[0].IncExpr) {
3105 if (Inc.IncExpr->isZero())
3110 if (isa<SCEVConstant>(Inc.IncExpr)) {
3115 if (Inc.IncExpr == LastIncExpr)
3120 LastIncExpr = Inc.IncExpr;
3177 const SCEV *IncExpr = SE.getMinusSCEV(OperExpr, PrevExpr);
3178 if (isa<SCEVCouldNotCompute>(IncExpr) || !SE.isLoopInvariant(IncExpr, L))
3181 if (Chain.isProfitableIncrement(OperExpr, IncExpr, SE)) {
3182 LastIncExpr = IncExpr;
3359 static bool canFoldIVIncExpr(const SCEV *IncExpr, Instruction *UserInst,
3361 const SCEVConstant *IncConst = dyn_cast<SCEVConstant>(IncExpr);
3369 auto *IncVScale = dyn_cast<SCEVMulExpr>(IncExpr);
3408 // Note that if Head.IncExpr is wider than IVSrc, then this phi is too
3412 // getSCEV(IVSrc) == IncExpr.
3413 if (SE.getSCEV(*IVOpIter) == Head.IncExpr
3414 || SE.getSCEV(IVSrc) == Head.IncExpr) {
3442 if (!Inc.IncExpr->isZero()) {
3443 // IncExpr was the result of subtraction of two narrow values, so must
3445 const SCEV *IncExpr = SE.getNoopOrSignExtend(Inc.IncExpr, IntTy);
3446 Accum = SE.getAddExpr(Accum, IncExpr);
3448 SE.getAddExpr(LeftOverExpr, IncExpr) : IncExpr;