Lines Matching refs:AddRec
964 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in checkSubscript() local
965 if (!AddRec) in checkSubscript()
974 while (L && AddRec->getLoop() != L) in checkSubscript()
979 const SCEV *Start = AddRec->getStart(); in checkSubscript()
980 const SCEV *Step = AddRec->getStepRecurrence(*SE); in checkSubscript()
981 const SCEV *UB = SE->getBackedgeTakenCount(AddRec->getLoop()); in checkSubscript()
985 if (!AddRec->getNoWrapFlags()) in checkSubscript()
992 Loops.set(mapSrcLoop(AddRec->getLoop())); in checkSubscript()
994 Loops.set(mapDstLoop(AddRec->getLoop())); in checkSubscript()
1111 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) { in isKnownLessThan() local
1112 if (AddRec->isAffine()) { in isKnownLessThan()
1113 const SCEV *BECount = SE->getBackedgeTakenCount(AddRec->getLoop()); in isKnownLessThan()
1115 const SCEV *Limit = AddRec->evaluateAtIteration(BECount, *SE); in isKnownLessThan()
1133 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in isKnownNonNegative() local
1134 if (AddRec->isAffine()) { in isKnownNonNegative()
1137 if (SE->isKnownNonNegative(AddRec->getStart()) && in isKnownNonNegative()
1138 SE->isKnownNonNegative(AddRec->getOperand(1))) in isKnownNonNegative()
2414 while (const SCEVAddRecExpr *AddRec = in gcdMIVtest() local
2416 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2424 Coefficients = AddRec->getStart(); in gcdMIVtest()
2433 while (const SCEVAddRecExpr *AddRec = in gcdMIVtest() local
2435 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2443 Coefficients = AddRec->getStart(); in gcdMIVtest()
2503 while (const SCEVAddRecExpr *AddRec = in gcdMIVtest() local
2505 Coefficients = AddRec->getStart(); in gcdMIVtest()
2506 const Loop *CurLoop = AddRec->getLoop(); in gcdMIVtest()
2508 const SCEV *SrcCoeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2512 AddRec = cast<SCEVAddRecExpr>(Inner); in gcdMIVtest()
2513 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2514 if (CurLoop == AddRec->getLoop()) in gcdMIVtest()
2525 Inner = AddRec->getStart(); in gcdMIVtest()
2529 AddRec = cast<SCEVAddRecExpr>(Inner); in gcdMIVtest()
2530 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2531 if (CurLoop == AddRec->getLoop()) in gcdMIVtest()
2542 Inner = AddRec->getStart(); in gcdMIVtest()
3009 while (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Subscript)) { in collectCoeffInfo() local
3010 const Loop *L = AddRec->getLoop(); in collectCoeffInfo()
3012 CI[K].Coeff = AddRec->getStepRecurrence(*SE); in collectCoeffInfo()
3016 Subscript = AddRec->getStart(); in collectCoeffInfo()
3083 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in findCoefficient() local
3084 if (!AddRec) in findCoefficient()
3086 if (AddRec->getLoop() == TargetLoop) in findCoefficient()
3087 return AddRec->getStepRecurrence(*SE); in findCoefficient()
3088 return findCoefficient(AddRec->getStart(), TargetLoop); in findCoefficient()
3099 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in zeroCoefficient() local
3100 if (!AddRec) in zeroCoefficient()
3102 if (AddRec->getLoop() == TargetLoop) in zeroCoefficient()
3103 return AddRec->getStart(); in zeroCoefficient()
3104 return SE->getAddRecExpr(zeroCoefficient(AddRec->getStart(), TargetLoop), in zeroCoefficient()
3105 AddRec->getStepRecurrence(*SE), in zeroCoefficient()
3106 AddRec->getLoop(), in zeroCoefficient()
3107 AddRec->getNoWrapFlags()); in zeroCoefficient()
3119 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in addToCoefficient() local
3120 if (!AddRec) // create a new addRec in addToCoefficient()
3125 if (AddRec->getLoop() == TargetLoop) { in addToCoefficient()
3126 const SCEV *Sum = SE->getAddExpr(AddRec->getStepRecurrence(*SE), Value); in addToCoefficient()
3128 return AddRec->getStart(); in addToCoefficient()
3129 return SE->getAddRecExpr(AddRec->getStart(), in addToCoefficient()
3131 AddRec->getLoop(), in addToCoefficient()
3132 AddRec->getNoWrapFlags()); in addToCoefficient()
3134 if (SE->isLoopInvariant(AddRec, TargetLoop)) in addToCoefficient()
3135 return SE->getAddRecExpr(AddRec, Value, TargetLoop, SCEV::FlagAnyWrap); in addToCoefficient()
3137 addToCoefficient(AddRec->getStart(), TargetLoop, Value), in addToCoefficient()
3138 AddRec->getStepRecurrence(*SE), AddRec->getLoop(), in addToCoefficient()
3139 AddRec->getNoWrapFlags()); in addToCoefficient()