Lines Matching refs:AddRec

891   const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr);  in checkSubscript()  local
892 if (!AddRec) in checkSubscript()
894 const SCEV *Start = AddRec->getStart(); in checkSubscript()
895 const SCEV *Step = AddRec->getStepRecurrence(*SE); in checkSubscript()
896 const SCEV *UB = SE->getBackedgeTakenCount(AddRec->getLoop()); in checkSubscript()
900 if (!AddRec->getNoWrapFlags()) in checkSubscript()
907 Loops.set(mapSrcLoop(AddRec->getLoop())); in checkSubscript()
909 Loops.set(mapDstLoop(AddRec->getLoop())); in checkSubscript()
1026 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) { in isKnownLessThan() local
1027 if (AddRec->isAffine()) { in isKnownLessThan()
1028 const SCEV *BECount = SE->getBackedgeTakenCount(AddRec->getLoop()); in isKnownLessThan()
1030 const SCEV *Limit = AddRec->evaluateAtIteration(BECount, *SE); in isKnownLessThan()
1048 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S)) { in isKnownNonNegative() local
1049 if (AddRec->isAffine()) { in isKnownNonNegative()
1052 if (SE->isKnownNonNegative(AddRec->getStart()) && in isKnownNonNegative()
1053 SE->isKnownNonNegative(AddRec->getOperand(1))) in isKnownNonNegative()
2329 while (const SCEVAddRecExpr *AddRec = in gcdMIVtest() local
2331 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2339 Coefficients = AddRec->getStart(); in gcdMIVtest()
2348 while (const SCEVAddRecExpr *AddRec = in gcdMIVtest() local
2350 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2358 Coefficients = AddRec->getStart(); in gcdMIVtest()
2418 while (const SCEVAddRecExpr *AddRec = in gcdMIVtest() local
2420 Coefficients = AddRec->getStart(); in gcdMIVtest()
2421 const Loop *CurLoop = AddRec->getLoop(); in gcdMIVtest()
2423 const SCEV *SrcCoeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2427 AddRec = cast<SCEVAddRecExpr>(Inner); in gcdMIVtest()
2428 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2429 if (CurLoop == AddRec->getLoop()) in gcdMIVtest()
2440 Inner = AddRec->getStart(); in gcdMIVtest()
2444 AddRec = cast<SCEVAddRecExpr>(Inner); in gcdMIVtest()
2445 const SCEV *Coeff = AddRec->getStepRecurrence(*SE); in gcdMIVtest()
2446 if (CurLoop == AddRec->getLoop()) in gcdMIVtest()
2457 Inner = AddRec->getStart(); in gcdMIVtest()
2911 while (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Subscript)) { in collectCoeffInfo() local
2912 const Loop *L = AddRec->getLoop(); in collectCoeffInfo()
2914 CI[K].Coeff = AddRec->getStepRecurrence(*SE); in collectCoeffInfo()
2918 Subscript = AddRec->getStart(); in collectCoeffInfo()
2985 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in findCoefficient() local
2986 if (!AddRec) in findCoefficient()
2988 if (AddRec->getLoop() == TargetLoop) in findCoefficient()
2989 return AddRec->getStepRecurrence(*SE); in findCoefficient()
2990 return findCoefficient(AddRec->getStart(), TargetLoop); in findCoefficient()
3001 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in zeroCoefficient() local
3002 if (!AddRec) in zeroCoefficient()
3004 if (AddRec->getLoop() == TargetLoop) in zeroCoefficient()
3005 return AddRec->getStart(); in zeroCoefficient()
3006 return SE->getAddRecExpr(zeroCoefficient(AddRec->getStart(), TargetLoop), in zeroCoefficient()
3007 AddRec->getStepRecurrence(*SE), in zeroCoefficient()
3008 AddRec->getLoop(), in zeroCoefficient()
3009 AddRec->getNoWrapFlags()); in zeroCoefficient()
3021 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in addToCoefficient() local
3022 if (!AddRec) // create a new addRec in addToCoefficient()
3027 if (AddRec->getLoop() == TargetLoop) { in addToCoefficient()
3028 const SCEV *Sum = SE->getAddExpr(AddRec->getStepRecurrence(*SE), Value); in addToCoefficient()
3030 return AddRec->getStart(); in addToCoefficient()
3031 return SE->getAddRecExpr(AddRec->getStart(), in addToCoefficient()
3033 AddRec->getLoop(), in addToCoefficient()
3034 AddRec->getNoWrapFlags()); in addToCoefficient()
3036 if (SE->isLoopInvariant(AddRec, TargetLoop)) in addToCoefficient()
3037 return SE->getAddRecExpr(AddRec, Value, TargetLoop, SCEV::FlagAnyWrap); in addToCoefficient()
3039 addToCoefficient(AddRec->getStart(), TargetLoop, Value), in addToCoefficient()
3040 AddRec->getStepRecurrence(*SE), AddRec->getLoop(), in addToCoefficient()
3041 AddRec->getNoWrapFlags()); in addToCoefficient()