Lines Matching full:stride
291 const SCEV *Stride = nullptr; in computeRefCost() local
292 if (isConsecutive(L, Stride, CLS)) { in computeRefCost()
294 // (TripCount*Stride)/CLS. in computeRefCost()
295 assert(Stride != nullptr && in computeRefCost()
296 "Stride should not be null for consecutive access!"); in computeRefCost()
297 Type *WiderType = SE.getWiderType(Stride->getType(), TripCount->getType()); in computeRefCost()
299 Stride = SE.getNoopOrAnyExtend(Stride, WiderType); in computeRefCost()
301 const SCEV *Numerator = SE.getMulExpr(Stride, TripCount); in computeRefCost()
310 << "Access is consecutive: RefCost=(TripCount*Stride)/CLS=" in computeRefCost()
467 bool IndexedReference::isConsecutive(const Loop &L, const SCEV *&Stride, in isConsecutive() argument
479 // ...and the access stride is less than the cache line size. in isConsecutive()
493 Stride = SE.getMulExpr(SE.getNoopOrSignExtend(Coeff, WiderType), in isConsecutive()
495 const SCEV *CacheLineSize = SE.getConstant(Stride->getType(), CLS); in isConsecutive()
497 Stride = SE.isKnownNegative(Stride) ? SE.getNegativeSCEV(Stride) : Stride; in isConsecutive()
498 return SE.isKnownPredicate(ICmpInst::ICMP_ULT, Stride, CacheLineSize); in isConsecutive()