Home
last modified time | relevance | path

Searched refs:AddRec (Results 1 – 12 of 12) sorted by relevance

/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DDependenceAnalysis.cpp991 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 DScalarEvolution.cpp1213 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 DLoads.cpp306 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 DIVDescriptors.cpp1521 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 DLoopTermFold.cpp138 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 DInductiveRangeCheckElimination.cpp309 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 DLoopFuse.cpp1301 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 DLoopPeel.cpp526 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 DSimplifyIndVar.cpp1530 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 DLoopUtils.cpp1663 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 DTargetTransformInfoImpl.h1211 const SCEVAddRecExpr *AddRec = cast<SCEVAddRecExpr>(Ptr); in getConstantStrideStep() local
1212 return dyn_cast<SCEVConstant>(AddRec->getStepRecurrence(*SE)); in getConstantStrideStep()
H A DScalarEvolution.h1338 LLVM_ABI void setNoWrapFlags(SCEVAddRecExpr *AddRec, SCEV::NoWrapFlags Flags);
1786 ConstantRange getRangeForAffineNoSelfWrappingAR(const SCEVAddRecExpr *AddRec,