Lines Matching refs:AddRec

877   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Src);  in checkSrcSubscript()  local
878 if (!AddRec) in checkSrcSubscript()
880 const SCEV *Start = AddRec->getStart(); in checkSrcSubscript()
881 const SCEV *Step = AddRec->getStepRecurrence(*SE); in checkSrcSubscript()
882 const SCEV *UB = SE->getBackedgeTakenCount(AddRec->getLoop()); in checkSrcSubscript()
886 if (!AddRec->getNoWrapFlags()) in checkSrcSubscript()
892 Loops.set(mapSrcLoop(AddRec->getLoop())); in checkSrcSubscript()
902 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Dst); in checkDstSubscript() local
903 if (!AddRec) in checkDstSubscript()
905 const SCEV *Start = AddRec->getStart(); in checkDstSubscript()
906 const SCEV *Step = AddRec->getStepRecurrence(*SE); in checkDstSubscript()
907 const SCEV *UB = SE->getBackedgeTakenCount(AddRec->getLoop()); in checkDstSubscript()
911 if (!AddRec->getNoWrapFlags()) in checkDstSubscript()
917 Loops.set(mapDstLoop(AddRec->getLoop())); in checkDstSubscript()
1020 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) { in isKnownLessThan() local
1021 if (AddRec->isAffine()) { in isKnownLessThan()
1022 const SCEV *BECount = SE->getBackedgeTakenCount(AddRec->getLoop()); in isKnownLessThan()
1024 const SCEV *Limit = AddRec->evaluateAtIteration(BECount, *SE); in isKnownLessThan()
1042 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in isKnownNonNegative() local
1043 if (AddRec->isAffine()) { in isKnownNonNegative()
1046 if (SE->isKnownNonNegative(AddRec->getStart()) && in isKnownNonNegative()
1047 SE->isKnownNonNegative(AddRec->getOperand(1))) in isKnownNonNegative()
2334 while (const SCEVAddRecExpr *AddRec = in gcdMIVtest() local
2336 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2344 Coefficients = AddRec->getStart(); in gcdMIVtest()
2353 while (const SCEVAddRecExpr *AddRec = in gcdMIVtest() local
2355 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2363 Coefficients = AddRec->getStart(); in gcdMIVtest()
2423 while (const SCEVAddRecExpr *AddRec = in gcdMIVtest() local
2425 Coefficients = AddRec->getStart(); in gcdMIVtest()
2426 const Loop *CurLoop = AddRec->getLoop(); in gcdMIVtest()
2428 const SCEV *SrcCoeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2432 AddRec = cast<SCEVAddRecExpr>(Inner); in gcdMIVtest()
2433 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2434 if (CurLoop == AddRec->getLoop()) in gcdMIVtest()
2445 Inner = AddRec->getStart(); 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()
2916 while (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Subscript)) { in collectCoeffInfo() local
2917 const Loop *L = AddRec->getLoop(); in collectCoeffInfo()
2919 CI[K].Coeff = AddRec->getStepRecurrence(*SE); in collectCoeffInfo()
2923 Subscript = AddRec->getStart(); in collectCoeffInfo()
2990 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in findCoefficient() local
2991 if (!AddRec) in findCoefficient()
2993 if (AddRec->getLoop() == TargetLoop) in findCoefficient()
2994 return AddRec->getStepRecurrence(*SE); in findCoefficient()
2995 return findCoefficient(AddRec->getStart(), TargetLoop); in findCoefficient()
3006 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in zeroCoefficient() local
3007 if (!AddRec) in zeroCoefficient()
3009 if (AddRec->getLoop() == TargetLoop) in zeroCoefficient()
3010 return AddRec->getStart(); in zeroCoefficient()
3011 return SE->getAddRecExpr(zeroCoefficient(AddRec->getStart(), TargetLoop), in zeroCoefficient()
3012 AddRec->getStepRecurrence(*SE), in zeroCoefficient()
3013 AddRec->getLoop(), in zeroCoefficient()
3014 AddRec->getNoWrapFlags()); in zeroCoefficient()
3026 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in addToCoefficient() local
3027 if (!AddRec) // create a new addRec in addToCoefficient()
3032 if (AddRec->getLoop() == TargetLoop) { in addToCoefficient()
3033 const SCEV *Sum = SE->getAddExpr(AddRec->getStepRecurrence(*SE), Value); in addToCoefficient()
3035 return AddRec->getStart(); in addToCoefficient()
3036 return SE->getAddRecExpr(AddRec->getStart(), in addToCoefficient()
3038 AddRec->getLoop(), in addToCoefficient()
3039 AddRec->getNoWrapFlags()); in addToCoefficient()
3041 if (SE->isLoopInvariant(AddRec, TargetLoop)) in addToCoefficient()
3042 return SE->getAddRecExpr(AddRec, Value, TargetLoop, SCEV::FlagAnyWrap); in addToCoefficient()
3044 addToCoefficient(AddRec->getStart(), TargetLoop, Value), in addToCoefficient()
3045 AddRec->getStepRecurrence(*SE), AddRec->getLoop(), in addToCoefficient()
3046 AddRec->getNoWrapFlags()); in addToCoefficient()