Lines Matching refs:SCEV

153 const SCEV *llvm::replaceSymbolicStrideSCEV(PredicatedScalarEvolution &PSE,  in replaceSymbolicStrideSCEV()
154 const DenseMap<Value *, const SCEV *> &PtrToStride, in replaceSymbolicStrideSCEV()
156 const SCEV *OrigSCEV = PSE.getSCEV(Ptr); in replaceSymbolicStrideSCEV()
160 DenseMap<Value *, const SCEV *>::const_iterator SI = PtrToStride.find(Ptr); in replaceSymbolicStrideSCEV()
165 const SCEV *StrideSCEV = SI->second; in replaceSymbolicStrideSCEV()
205 void RuntimePointerChecking::insert(Loop *Lp, Value *Ptr, const SCEV *PtrExpr, in insert()
212 const SCEV *ScStart; in insert()
213 const SCEV *ScEnd; in insert()
220 const SCEV *Ex = PSE.getBackedgeTakenCount(); in insert()
224 const SCEV *Step = AR->getStepRecurrence(*SE); in insert()
245 const SCEV *EltSizeSCEV = SE->getStoreSizeOfExpr(IdxTy, AccessTy); in insert()
331 const SCEV *SinkStartInt = SE->getPtrToIntExpr(SinkAR->getStart(), IntTy); in tryToCreateDiffCheck()
332 const SCEV *SrcStartInt = SE->getPtrToIntExpr(SrcAR->getStart(), IntTy); in tryToCreateDiffCheck()
405 static const SCEV *getMinFromExprs(const SCEV *I, const SCEV *J, in getMinFromExprs()
407 const SCEV *Diff = SE->getMinusSCEV(J, I); in getMinFromExprs()
425 bool RuntimeCheckingPtrGroup::addPointer(unsigned Index, const SCEV *Start, in addPointer()
426 const SCEV *End, unsigned AS, in addPointer()
435 const SCEV *Min0 = getMinFromExprs(Start, Low, &SE); in addPointer()
439 const SCEV *Min1 = getMinFromExprs(End, High, &SE); in addPointer()
693 const DenseMap<Value *, const SCEV *> &Strides,
704 Loop *TheLoop, const DenseMap<Value *, const SCEV *> &Strides,
818 const SCEV *PtrScev, Loop *L, bool Assume) { in hasComputableBounds()
836 const DenseMap<Value *, const SCEV *> &Strides, Value *Ptr, Type *AccessTy, in isNoWrap()
838 const SCEV *PtrScev = PSE.getSCEV(Ptr); in isNoWrap()
891 SmallVectorImpl<PointerIntPair<const SCEV *, 1, bool>> &ScevList, in findForkedSCEVs() argument
897 const SCEV *Scev = SE->getSCEV(Ptr); in findForkedSCEVs()
906 auto UndefPoisonCheck = [](PointerIntPair<const SCEV *, 1, bool> S) { in findForkedSCEVs() argument
910 auto GetBinOpExpr = [&SE](unsigned Opcode, const SCEV *L, const SCEV *R) { in findForkedSCEVs()
933 SmallVector<PointerIntPair<const SCEV *, 1, bool>, 2> BaseScevs; in findForkedSCEVs()
934 SmallVector<PointerIntPair<const SCEV *, 1, bool>, 2> OffsetScevs; in findForkedSCEVs()
961 const SCEV *Size = SE->getSizeOfExpr(IntPtrTy, SourceTy); in findForkedSCEVs()
964 const SCEV *Scaled1 = SE->getMulExpr( in findForkedSCEVs()
966 const SCEV *Scaled2 = SE->getMulExpr( in findForkedSCEVs()
975 SmallVector<PointerIntPair<const SCEV *, 1, bool>, 2> ChildScevs; in findForkedSCEVs()
989 SmallVector<PointerIntPair<const SCEV *, 1, bool>, 2> ChildScevs; in findForkedSCEVs()
1006 SmallVector<PointerIntPair<const SCEV *, 1, bool>> LScevs; in findForkedSCEVs()
1007 SmallVector<PointerIntPair<const SCEV *, 1, bool>> RScevs; in findForkedSCEVs()
1043 static SmallVector<PointerIntPair<const SCEV *, 1, bool>>
1045 const DenseMap<Value *, const SCEV *> &StridesMap, Value *Ptr, in findForkedPointer()
1049 SmallVector<PointerIntPair<const SCEV *, 1, bool>> Scevs; in findForkedPointer()
1070 const DenseMap<Value *, const SCEV *> &StridesMap, in createCheckForAccess()
1077 SmallVector<PointerIntPair<const SCEV *, 1, bool>> TranslatedPtrs = in createCheckForAccess()
1081 const SCEV *PtrExpr = get<0>(P); in createCheckForAccess()
1131 const DenseMap<Value *, const SCEV *> &StridesMap, in canCheckPtrAtRT()
1415 if (AR->getNoWrapFlags(SCEV::NoWrapMask)) in isNoWrapAddRec()
1455 return OpAR->getLoop() == L && OpAR->getNoWrapFlags(SCEV::FlagNSW); in isNoWrapAddRec()
1465 const DenseMap<Value *, const SCEV *> &StridesMap, in getPtrStride()
1476 const SCEV *PtrScev = replaceSymbolicStrideSCEV(PSE, StridesMap, Ptr); in getPtrStride()
1496 const SCEV *Step = AR->getStepRecurrence(*PSE.getSE()); in getPtrStride()
1606 const SCEV *PtrSCEVA = SE.getSCEV(PtrA); in getPointersDiff()
1607 const SCEV *PtrSCEVB = SE.getSCEV(PtrB); in getPointersDiff()
1820 const SCEV &BackedgeTakenCount, in isSafeDependenceDistance()
1821 const SCEV &Dist, uint64_t Stride, in isSafeDependenceDistance()
1842 const SCEV *Step = SE.getConstant(BackedgeTakenCount.getType(), ByteStride); in isSafeDependenceDistance()
1843 const SCEV *Product = SE.getMulExpr(&BackedgeTakenCount, Step); in isSafeDependenceDistance()
1845 const SCEV *CastedDist = &Dist; in isSafeDependenceDistance()
1846 const SCEV *CastedProduct = Product; in isSafeDependenceDistance()
1860 const SCEV *Minus = SE.getMinusSCEV(CastedDist, CastedProduct); in isSafeDependenceDistance()
1866 const SCEV *NegDist = SE.getNegativeSCEV(CastedDist); in isSafeDependenceDistance()
1927 std::tuple<const SCEV *, uint64_t, uint64_t, bool, bool>>
1931 const DenseMap<Value *, const SCEV *> &Strides, in getDependenceDistanceStrideAndSize()
1956 const SCEV *Src = PSE.getSCEV(APtr); in getDependenceDistanceStrideAndSize()
1957 const SCEV *Sink = PSE.getSCEV(BPtr); in getDependenceDistanceStrideAndSize()
1967 const SCEV *Dist = SE.getMinusSCEV(Sink, Src); in getDependenceDistanceStrideAndSize()
2001 unsigned BIdx, const DenseMap<Value *, const SCEV *> &Strides, in isDependent()
2015 std::get<std::tuple<const SCEV *, uint64_t, uint64_t, bool, bool>>(Res); in isDependent()
2170 const DenseMap<Value *, const SCEV *> &Strides, in areDepsSafe()
2301 const SCEV *ExitCount = PSE->getBackedgeTakenCount(); in canAnalyzeLoop()
2728 const SCEV *S = SE->getSCEV(V); in isInvariant()
2795 static const SCEV *getStrideFromPointer(Value *Ptr, ScalarEvolution *SE, Loop *Lp) { in getStrideFromPointer()
2809 const SCEV *V = SE->getSCEV(Ptr); in getStrideFromPointer()
2883 const SCEV *StrideExpr = getStrideFromPointer(Ptr, PSE->getSE(), TheLoop); in collectStridedAccess()
2909 const SCEV *BETakenCount = PSE->getBackedgeTakenCount(); in collectStridedAccess()
2917 const SCEV *CastedStride = StrideExpr; in collectStridedAccess()
2918 const SCEV *CastedBECount = BETakenCount; in collectStridedAccess()
2924 const SCEV *StrideMinusBETaken = SE->getMinusSCEV(CastedStride, CastedBECount); in collectStridedAccess()
2939 const SCEV *StrideBase = StrideExpr; in collectStridedAccess()