| /freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | DependenceAnalysis.cpp | 991 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in checkSubscript() local 992 if (!AddRec) in checkSubscript() 1001 while (L && AddRec->getLoop() != L) in checkSubscript() 1006 const SCEV *Start = AddRec->getStart(); in checkSubscript() 1007 const SCEV *Step = AddRec->getStepRecurrence(*SE); in checkSubscript() 1011 Loops.set(mapSrcLoop(AddRec->getLoop())); in checkSubscript() 1013 Loops.set(mapDstLoop(AddRec->getLoop())); in checkSubscript() 1130 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) { in isKnownLessThan() local 1131 if (AddRec->isAffine()) { in isKnownLessThan() 1132 const SCEV *BECount = SE->getBackedgeTakenCount(AddRec->getLoop()); in isKnownLessThan() [all …]
|
| H A D | ScalarEvolution.cpp | 1213 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr() local 1215 for (const SCEV *Op : AddRec->operands()) in getTruncateExpr() 1217 return getAddRecExpr(Operands, AddRec->getLoop(), SCEV::FlagAnyWrap); in getTruncateExpr() 2865 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getAddExpr() local 2866 const Loop *AddRecLoop = AddRec->getLoop(); in getAddExpr() 2879 LIOps.push_back(AddRec); in getAddExpr() 2884 LIOps.push_back(AddRec->getStart()); in getAddExpr() 2886 SmallVector<const SCEV *, 4> AddRecOps(AddRec->operands()); in getAddExpr() 2910 Flags = AddRec->getNoWrapFlags(setFlags(Flags, SCEV::FlagNW)); in getAddExpr() 2918 if (Ops[i] == AddRec) { in getAddExpr() [all …]
|
| H A D | Loads.cpp | 306 auto *AddRec = dyn_cast<SCEVAddRecExpr>(PtrScev); in isDereferenceableAndAlignedInLoop() local 310 if (!AddRec || AddRec->getLoop() != L || !AddRec->isAffine()) in isDereferenceableAndAlignedInLoop() 313 auto *Step = dyn_cast<SCEVConstant>(AddRec->getStepRecurrence(SE)); in isDereferenceableAndAlignedInLoop()
|
| H A D | IVDescriptors.cpp | 1521 auto *AddRec = dyn_cast<SCEVAddRecExpr>(PSE.getSCEV(Val)); in getCastsForInductionPHI() local 1522 if (AddRec && PSE.areAddRecsEqualWithPreds(AddRec, AR)) in getCastsForInductionPHI()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
| H A D | LoopTermFold.cpp | 138 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN)); in canFoldTermCondOfLoop() local 140 if (!AddRec || !AddRec->isAffine()) { in canFoldTermCondOfLoop() 156 if (!AddRec->hasNoSelfWrap() || in canFoldTermCondOfLoop() 157 !SE.isKnownNonZero(AddRec->getStepRecurrence(SE))) in canFoldTermCondOfLoop() 160 const SCEVAddRecExpr *PostInc = AddRec->getPostIncExpr(SE); in canFoldTermCondOfLoop()
|
| H A D | InductiveRangeCheckElimination.cpp | 309 const auto *AddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(LHS)); in parseIvAgaisntLimit() local 310 if (!AddRec) in parseIvAgaisntLimit() 323 Index = AddRec; in parseIvAgaisntLimit() 331 Index = AddRec; in parseIvAgaisntLimit() 339 Index = AddRec; in parseIvAgaisntLimit() 349 Index = AddRec; in parseIvAgaisntLimit() 382 const auto *AddRec = dyn_cast<SCEVAddRecExpr>(IV); in reassociateSubLHS() local 383 if (!AddRec) in reassociateSubLHS() 471 Index = AddRec; in reassociateSubLHS()
|
| H A D | LoopFuse.cpp | 1301 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(S); in accessDiffIsPositive() local 1302 if (!AddRec) in accessDiffIsPositive() 1304 return !DT.dominates(L0Header, AddRec->getLoop()->getHeader()) && in accessDiffIsPositive() 1305 !DT.dominates(AddRec->getLoop()->getHeader(), L0Header); in accessDiffIsPositive()
|
| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | LoopPeel.cpp | 526 const auto *AddRec = dyn_cast<SCEVAddRecExpr>(IterSCEV); in countToEliminateCompares() local 528 if (!AddRec || !AddRec->isAffine() || AddRec->getLoop() != &L) in countToEliminateCompares() 530 const SCEV *Step = AddRec->getStepRecurrence(SE); in countToEliminateCompares() 542 if (!(IsSigned ? AddRec->hasNoSignedWrap() : AddRec->hasNoUnsignedWrap())) in countToEliminateCompares() 545 const SCEV *IterVal = AddRec->evaluateAtIteration( in countToEliminateCompares() 546 SE.getConstant(AddRec->getType(), NewPeelCount), SE); in countToEliminateCompares() 549 if (shouldPeelLastIteration(L, Pred, AddRec, BoundSCEV, SE, TTI)) in countToEliminateCompares()
|
| H A D | SimplifyIndVar.cpp | 1530 const SCEVAddRecExpr *AddRec = in getExtendedOperandRecurrence() local 1533 if (!AddRec || AddRec->getLoop() != L) in getExtendedOperandRecurrence() 1536 return {AddRec, ExtKind}; in getExtendedOperandRecurrence() 1573 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(WideExpr); in getWideRecurrence() local 1574 if (!AddRec || AddRec->getLoop() != L) in getWideRecurrence() 1576 return {AddRec, ExtKind}; in getWideRecurrence() 2045 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(OrigPhi)); in createWideIV() local 2046 if (!AddRec) in createWideIV() 2051 ? SE->getSignExtendExpr(AddRec, WideType) in createWideIV() 2052 : SE->getZeroExtendExpr(AddRec, WideType); in createWideIV() [all …]
|
| H A D | LoopUtils.cpp | 1663 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Inst))) in rewriteLoopExitValues() local 1664 if (AddRec->getLoop() == L) in rewriteLoopExitValues() 1665 ExitValue = AddRec->evaluateAtIteration(ExitCount, *SE); in rewriteLoopExitValues()
|
| /freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
| H A D | TargetTransformInfoImpl.h | 1211 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ptr); in getConstantStrideStep() local 1212 return dyn_cast<SCEVConstant>(AddRec->getStepRecurrence(*SE)); in getConstantStrideStep()
|
| H A D | ScalarEvolution.h | 1338 LLVM_ABI void setNoWrapFlags(SCEVAddRecExpr *AddRec, SCEV::NoWrapFlags Flags); 1786 ConstantRange getRangeForAffineNoSelfWrappingAR(const SCEVAddRecExpr *AddRec,
|