Lines Matching refs:AddRec
901 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in checkSubscript() local
902 if (!AddRec) in checkSubscript()
911 while (L && AddRec->getLoop() != L) in checkSubscript()
916 const SCEV *Start = AddRec->getStart(); in checkSubscript()
917 const SCEV *Step = AddRec->getStepRecurrence(*SE); in checkSubscript()
918 const SCEV *UB = SE->getBackedgeTakenCount(AddRec->getLoop()); in checkSubscript()
922 if (!AddRec->getNoWrapFlags()) in checkSubscript()
929 Loops.set(mapSrcLoop(AddRec->getLoop())); in checkSubscript()
931 Loops.set(mapDstLoop(AddRec->getLoop())); in checkSubscript()
1048 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) { in isKnownLessThan() local
1049 if (AddRec->isAffine()) { in isKnownLessThan()
1050 const SCEV *BECount = SE->getBackedgeTakenCount(AddRec->getLoop()); in isKnownLessThan()
1052 const SCEV *Limit = AddRec->evaluateAtIteration(BECount, *SE); in isKnownLessThan()
1070 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in isKnownNonNegative() local
1071 if (AddRec->isAffine()) { in isKnownNonNegative()
1074 if (SE->isKnownNonNegative(AddRec->getStart()) && in isKnownNonNegative()
1075 SE->isKnownNonNegative(AddRec->getOperand(1))) in isKnownNonNegative()
2351 while (const SCEVAddRecExpr *AddRec = in gcdMIVtest() local
2353 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2361 Coefficients = AddRec->getStart(); in gcdMIVtest()
2370 while (const SCEVAddRecExpr *AddRec = in gcdMIVtest() local
2372 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2380 Coefficients = AddRec->getStart(); in gcdMIVtest()
2440 while (const SCEVAddRecExpr *AddRec = in gcdMIVtest() local
2442 Coefficients = AddRec->getStart(); in gcdMIVtest()
2443 const Loop *CurLoop = AddRec->getLoop(); in gcdMIVtest()
2445 const SCEV *SrcCoeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2449 AddRec = cast<SCEVAddRecExpr>(Inner); in gcdMIVtest()
2450 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2451 if (CurLoop == AddRec->getLoop()) in gcdMIVtest()
2462 Inner = AddRec->getStart(); in gcdMIVtest()
2466 AddRec = cast<SCEVAddRecExpr>(Inner); in gcdMIVtest()
2467 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2468 if (CurLoop == AddRec->getLoop()) in gcdMIVtest()
2479 Inner = AddRec->getStart(); in gcdMIVtest()
2946 while (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Subscript)) { in collectCoeffInfo() local
2947 const Loop *L = AddRec->getLoop(); in collectCoeffInfo()
2949 CI[K].Coeff = AddRec->getStepRecurrence(*SE); in collectCoeffInfo()
2953 Subscript = AddRec->getStart(); in collectCoeffInfo()
3020 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in findCoefficient() local
3021 if (!AddRec) in findCoefficient()
3023 if (AddRec->getLoop() == TargetLoop) in findCoefficient()
3024 return AddRec->getStepRecurrence(*SE); in findCoefficient()
3025 return findCoefficient(AddRec->getStart(), TargetLoop); in findCoefficient()
3036 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in zeroCoefficient() local
3037 if (!AddRec) in zeroCoefficient()
3039 if (AddRec->getLoop() == TargetLoop) in zeroCoefficient()
3040 return AddRec->getStart(); in zeroCoefficient()
3041 return SE->getAddRecExpr(zeroCoefficient(AddRec->getStart(), TargetLoop), in zeroCoefficient()
3042 AddRec->getStepRecurrence(*SE), in zeroCoefficient()
3043 AddRec->getLoop(), in zeroCoefficient()
3044 AddRec->getNoWrapFlags()); in zeroCoefficient()
3056 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in addToCoefficient() local
3057 if (!AddRec) // create a new addRec in addToCoefficient()
3062 if (AddRec->getLoop() == TargetLoop) { in addToCoefficient()
3063 const SCEV *Sum = SE->getAddExpr(AddRec->getStepRecurrence(*SE), Value); in addToCoefficient()
3065 return AddRec->getStart(); in addToCoefficient()
3066 return SE->getAddRecExpr(AddRec->getStart(), in addToCoefficient()
3068 AddRec->getLoop(), in addToCoefficient()
3069 AddRec->getNoWrapFlags()); in addToCoefficient()
3071 if (SE->isLoopInvariant(AddRec, TargetLoop)) in addToCoefficient()
3072 return SE->getAddRecExpr(AddRec, Value, TargetLoop, SCEV::FlagAnyWrap); in addToCoefficient()
3074 addToCoefficient(AddRec->getStart(), TargetLoop, Value), in addToCoefficient()
3075 AddRec->getStepRecurrence(*SE), AddRec->getLoop(), in addToCoefficient()
3076 AddRec->getNoWrapFlags()); in addToCoefficient()