/freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
H A D | DependenceAnalysis.cpp | 964 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Expr); in checkSubscript() local 965 if (!AddRec) in checkSubscript() 974 while (L && AddRec->getLoop() != L) in checkSubscript() 979 const SCEV *Start = AddRec->getStart(); in checkSubscript() 980 const SCEV *Step = AddRec->getStepRecurrence(*SE); in checkSubscript() 981 const SCEV *UB = SE->getBackedgeTakenCount(AddRec->getLoop()); in checkSubscript() 985 if (!AddRec->getNoWrapFlags()) in checkSubscript() 992 Loops.set(mapSrcLoop(AddRec->getLoop())); in checkSubscript() 994 Loops.set(mapDstLoop(AddRec->getLoop())); in checkSubscript() 1111 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Bound)) { in isKnownLessThan() local [all …]
|
H A D | Loads.cpp | 283 auto *AddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(Ptr)); in isDereferenceableAndAlignedInLoop() local 284 if (!AddRec || AddRec->getLoop() != L || !AddRec->isAffine()) in isDereferenceableAndAlignedInLoop() 286 auto* Step = dyn_cast<SCEVConstant>(AddRec->getStepRecurrence(SE)); in isDereferenceableAndAlignedInLoop() 306 assert(SE.isLoopInvariant(AddRec->getStart(), L) && in isDereferenceableAndAlignedInLoop() 309 if (auto *StartS = dyn_cast<SCEVUnknown>(AddRec->getStart())) { in isDereferenceableAndAlignedInLoop() 311 } else if (auto *StartS = dyn_cast<SCEVAddExpr>(AddRec->getStart())) { in isDereferenceableAndAlignedInLoop()
|
H A D | ScalarEvolution.cpp | 1207 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr() local 1209 for (const SCEV *Op : AddRec->operands()) in getTruncateExpr() 1211 return getAddRecExpr(Operands, AddRec->getLoop(), SCEV::FlagAnyWrap); in getTruncateExpr() 2877 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ops[Idx]); in getAddExpr() local 2878 const Loop *AddRecLoop = AddRec->getLoop(); in getAddExpr() 2891 LIOps.push_back(AddRec); in getAddExpr() 2896 LIOps.push_back(AddRec->getStart()); in getAddExpr() 2898 SmallVector<const SCEV *, 4> AddRecOps(AddRec->operands()); in getAddExpr() 2922 Flags = AddRec->getNoWrapFlags(setFlags(Flags, SCEV::FlagNW)); in getAddExpr() 2930 if (Ops[i] == AddRec) { in getAddExpr() [all …]
|
H A D | IVDescriptors.cpp | 1413 auto *AddRec = dyn_cast<SCEVAddRecExpr>(PSE.getSCEV(Val)); in getCastsForInductionPHI() local 1414 if (AddRec && PSE.areAddRecsEqualWithPreds(AddRec, AR)) in getCastsForInductionPHI()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
H A D | LoopPeel.cpp | 463 const auto *AddRec = dyn_cast<SCEVAddRecExpr>(IterSCEV); in countToEliminateCompares() local 465 if (!AddRec || !AddRec->isAffine() || AddRec->getLoop() != &L) in countToEliminateCompares() 467 const SCEV *Step = AddRec->getStepRecurrence(SE); in countToEliminateCompares() 479 if (!(IsSigned ? AddRec->hasNoSignedWrap() : AddRec->hasNoUnsignedWrap())) in countToEliminateCompares() 482 const SCEV *IterVal = AddRec->evaluateAtIteration( in countToEliminateCompares() 483 SE.getConstant(AddRec->getType(), NewPeelCount), SE); 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() 2035 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(OrigPhi)); in createWideIV() local 2036 if (!AddRec) in createWideIV() 2041 ? SE->getSignExtendExpr(AddRec, WideType) in createWideIV() 2042 : SE->getZeroExtendExpr(AddRec, WideType); in createWideIV() [all …]
|
H A D | LoopUtils.cpp | 1597 if (auto *AddRec = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Inst))) in rewriteLoopExitValues() local 1598 if (AddRec->getLoop() == L) in rewriteLoopExitValues() 1599 ExitValue = AddRec->evaluateAtIteration(ExitCount, *SE); in rewriteLoopExitValues()
|
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | InductiveRangeCheckElimination.cpp | 315 const auto *AddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(LHS)); in parseIvAgaisntLimit() 316 if (!AddRec) in parseIvAgaisntLimit() 329 Index = AddRec; in parseIvAgaisntLimit() 337 Index = AddRec; in parseIvAgaisntLimit() 345 Index = AddRec; in parseIvAgaisntLimit() 355 Index = AddRec; in parseIvAgaisntLimit() 388 const auto *AddRec = dyn_cast<SCEVAddRecExpr>(IV); in reassociateSubLHS() 389 if (!AddRec) in reassociateSubLHS() 477 Index = AddRec; in reassociateSubLHS() 317 const auto *AddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(LHS)); parseIvAgaisntLimit() local 390 const auto *AddRec = dyn_cast<SCEVAddRecExpr>(IV); reassociateSubLHS() local
|
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()
|
H A D | LoopStrengthReduce.cpp | 7152 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(SE.getSCEV(&PN)); in canFoldTermCondOfLoop() local 7154 if (!AddRec || !AddRec->isAffine()) { in canFoldTermCondOfLoop() 7170 if (!AddRec->hasNoSelfWrap() || in canFoldTermCondOfLoop() 7171 !SE.isKnownNonZero(AddRec->getStepRecurrence(SE))) in canFoldTermCondOfLoop() 7174 const SCEVAddRecExpr *PostInc = AddRec->getPostIncExpr(SE); in canFoldTermCondOfLoop()
|
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | TargetTransformInfoImpl.h | 1037 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ptr); in getConstantStrideStep() local 1038 return dyn_cast<SCEVConstant>(AddRec->getStepRecurrence(*SE)); in getConstantStrideStep()
|
H A D | ScalarEvolution.h | 1300 void setNoWrapFlags(SCEVAddRecExpr *AddRec, SCEV::NoWrapFlags Flags); 1699 ConstantRange getRangeForAffineNoSelfWrappingAR(const SCEVAddRecExpr *AddRec,
|