Lines Matching refs:IncExpr
2090 const SCEV *IncExpr; member
2093 : UserInst(U), IVOperand(O), IncExpr(E) {} in IVInc()
2128 const SCEV *IncExpr,
3037 const SCEV *IncExpr, in isProfitableIncrement() argument
3045 if (!isa<SCEVConstant>(IncExpr)) { in isProfitableIncrement()
3052 return !isHighCostExpansion(IncExpr, Processed, SE); in isProfitableIncrement()
3090 && SE.getSCEV(Chain.tailUserInst()) == Chain.Incs[0].IncExpr) { in isProfitableChain()
3104 if (Inc.IncExpr->isZero()) in isProfitableChain()
3109 if (isa<SCEVConstant>(Inc.IncExpr)) { in isProfitableChain()
3114 if (Inc.IncExpr == LastIncExpr) in isProfitableChain()
3119 LastIncExpr = Inc.IncExpr; in isProfitableChain()
3176 const SCEV *IncExpr = SE.getMinusSCEV(OperExpr, PrevExpr); in ChainInstruction() local
3177 if (isa<SCEVCouldNotCompute>(IncExpr) || !SE.isLoopInvariant(IncExpr, L)) in ChainInstruction()
3180 if (Chain.isProfitableIncrement(OperExpr, IncExpr, SE)) { in ChainInstruction()
3181 LastIncExpr = IncExpr; in ChainInstruction()
3358 static bool canFoldIVIncExpr(const SCEV *IncExpr, Instruction *UserInst, in canFoldIVIncExpr() argument
3360 const SCEVConstant *IncConst = dyn_cast<SCEVConstant>(IncExpr); in canFoldIVIncExpr()
3368 auto *IncVScale = dyn_cast<SCEVMulExpr>(IncExpr); in canFoldIVIncExpr()
3412 if (SE.getSCEV(*IVOpIter) == Head.IncExpr in GenerateIVChain()
3413 || SE.getSCEV(IVSrc) == Head.IncExpr) { in GenerateIVChain()
3441 if (!Inc.IncExpr->isZero()) { in GenerateIVChain()
3444 const SCEV *IncExpr = SE.getNoopOrSignExtend(Inc.IncExpr, IntTy); in GenerateIVChain() local
3445 Accum = SE.getAddExpr(Accum, IncExpr); in GenerateIVChain()
3447 SE.getAddExpr(LeftOverExpr, IncExpr) : IncExpr; in GenerateIVChain()