Lines Matching refs:ScalarEvolution

446 const SCEV *ScalarEvolution::getConstant(ConstantInt *V) {  in getConstant()
457 const SCEV *ScalarEvolution::getConstant(const APInt &Val) { in getConstant()
462 ScalarEvolution::getConstant(Type *Ty, uint64_t V, bool isSigned) { in getConstant()
908 ScalarEvolution &SE, in BinomialCoefficient()
1026 ScalarEvolution &SE) const { in evaluateAtIteration()
1032 const SCEV *It, ScalarEvolution &SE) { in evaluateAtIteration()
1052 const SCEV *ScalarEvolution::getLosslessPtrToIntExpr(const SCEV *Op, in getLosslessPtrToIntExpr()
1125 SCEVPtrToIntSinkingRewriter(ScalarEvolution &SE) : SCEVRewriteVisitor(SE) {} in getLosslessPtrToIntExpr()
1127 static const SCEV *rewrite(const SCEV *Scev, ScalarEvolution &SE) { in getLosslessPtrToIntExpr()
1176 const SCEV *ScalarEvolution::getPtrToIntExpr(const SCEV *Op, Type *Ty) { in getPtrToIntExpr()
1186 const SCEV *ScalarEvolution::getTruncateExpr(const SCEV *Op, Type *Ty, in getTruncateExpr()
1286 ScalarEvolution *SE) { in getSignedOverflowLimitForStep()
1306 ScalarEvolution *SE) { in getUnsignedOverflowLimitForStep()
1317 typedef const SCEV *(ScalarEvolution::*GetExtendExprTy)(const SCEV *, Type *,
1342 ScalarEvolution *SE) { in getOverflowLimitForStep()
1348 SCEVSignExtendExpr>::GetExtendExpr = &ScalarEvolution::getSignExtendExpr;
1358 ScalarEvolution *SE) { in getOverflowLimitForStep()
1364 SCEVZeroExtendExpr>::GetExtendExpr = &ScalarEvolution::getZeroExtendExpr;
1377 ScalarEvolution *SE, unsigned Depth) { in getPreStartForExtend()
1406 ScalarEvolution::maskFlags(SA->getNoWrapFlags(), SCEV::FlagNUW); in getPreStartForExtend()
1451 ScalarEvolution *SE, in getExtendAddRecStart()
1497 bool ScalarEvolution::proveNoWrapByVaryingStart(const SCEV *Start, in proveNoWrapByVaryingStart()
1544 static APInt extractConstantWithoutWrapping(ScalarEvolution &SE, in extractConstantWithoutWrapping()
1565 static APInt extractConstantWithoutWrapping(ScalarEvolution &SE, in extractConstantWithoutWrapping()
1577 ScalarEvolution::getZeroExtendExpr(const SCEV *Op, Type *Ty, unsigned Depth) { in getZeroExtendExpr()
1880 ScalarEvolution::getSignExtendExpr(const SCEV *Op, Type *Ty, unsigned Depth) { in getSignExtendExpr()
2117 const SCEV *ScalarEvolution::getAnyExtendExpr(const SCEV *Op, in getAnyExtendExpr()
2193 ScalarEvolution &SE) { in CollectAddOperandsWithScales()
2253 bool ScalarEvolution::willNotOverflow(Instruction::BinaryOps BinOp, bool Signed, in willNotOverflow()
2255 const SCEV *(ScalarEvolution::*Operation)(const SCEV *, const SCEV *, in willNotOverflow()
2261 Operation = &ScalarEvolution::getAddExpr; in willNotOverflow()
2264 Operation = &ScalarEvolution::getMinusSCEV; in willNotOverflow()
2267 Operation = &ScalarEvolution::getMulExpr; in willNotOverflow()
2271 const SCEV *(ScalarEvolution::*Extension)(const SCEV *, Type *, unsigned) = in willNotOverflow()
2272 Signed ? &ScalarEvolution::getSignExtendExpr in willNotOverflow()
2273 : &ScalarEvolution::getZeroExtendExpr; in willNotOverflow()
2289 ScalarEvolution::getStrengthenedNoWrapFlagsFromBinOp( in getStrengthenedNoWrapFlagsFromBinOp()
2294 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNUW); in getStrengthenedNoWrapFlagsFromBinOp()
2296 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNSW); in getStrengthenedNoWrapFlagsFromBinOp()
2314 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNUW); in getStrengthenedNoWrapFlagsFromBinOp()
2321 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNSW); in getStrengthenedNoWrapFlagsFromBinOp()
2332 StrengthenNoWrapFlags(ScalarEvolution *SE, SCEVTypes Type, in StrengthenNoWrapFlags()
2346 ScalarEvolution::maskFlags(Flags, SignOrUnsignMask); in StrengthenNoWrapFlags()
2355 ScalarEvolution::setFlags(Flags, (SCEV::NoWrapFlags)SignOrUnsignMask); in StrengthenNoWrapFlags()
2357 SignOrUnsignWrap = ScalarEvolution::maskFlags(Flags, SignOrUnsignMask); in StrengthenNoWrapFlags()
2381 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNSW); in StrengthenNoWrapFlags()
2389 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNUW); in StrengthenNoWrapFlags()
2396 bool ScalarEvolution::isAvailableAtLoopEntry(const SCEV *S, const Loop *L) { in isAvailableAtLoopEntry()
2401 const SCEV *ScalarEvolution::getAddExpr(SmallVectorImpl<const SCEV *> &Ops, in getAddExpr()
2565 if (ScalarEvolution::maskFlags(AddFlags, SCEV::FlagNUW) == in getAddExpr()
2569 ScalarEvolution::setFlags(PreservedFlags, SCEV::FlagNUW); in getAddExpr()
2574 if (ScalarEvolution::maskFlags(AddFlags, SCEV::FlagNSW) == in getAddExpr()
2579 ScalarEvolution::setFlags(PreservedFlags, SCEV::FlagNSW); in getAddExpr()
2850 ScalarEvolution::getOrCreateAddExpr(ArrayRef<const SCEV *> Ops, in getOrCreateAddExpr()
2872 ScalarEvolution::getOrCreateAddRecExpr(ArrayRef<const SCEV *> Ops, in getOrCreateAddRecExpr()
2895 ScalarEvolution::getOrCreateMulExpr(ArrayRef<const SCEV *> Ops, in getOrCreateMulExpr()
2971 const SCEV *ScalarEvolution::getMulExpr(SmallVectorImpl<const SCEV *> &Ops, in getMulExpr()
3236 const SCEV *ScalarEvolution::getURemExpr(const SCEV *LHS, in getURemExpr()
3265 const SCEV *ScalarEvolution::getUDivExpr(const SCEV *LHS, in getUDivExpr()
3441 const SCEV *ScalarEvolution::getUDivExactExpr(const SCEV *LHS, in getUDivExactExpr()
3495 const SCEV *ScalarEvolution::getAddRecExpr(const SCEV *Start, const SCEV *Step, in getAddRecExpr()
3513 ScalarEvolution::getAddRecExpr(SmallVectorImpl<const SCEV *> &Operands, in getAddRecExpr()
3590 ScalarEvolution::getGEPExpr(GEPOperator *GEP, in getGEPExpr()
3654 ScalarEvolution::findExistingSCEVInCache(SCEVTypes SCEVType, in findExistingSCEVInCache()
3665 const SCEV *ScalarEvolution::getAbsExpr(const SCEV *Op, bool IsNSW) { in getAbsExpr()
3670 const SCEV *ScalarEvolution::getMinMaxExpr(SCEVTypes Kind, in getMinMaxExpr()
3806 const SCEV *ScalarEvolution::getSMaxExpr(const SCEV *LHS, const SCEV *RHS) { in getSMaxExpr()
3811 const SCEV *ScalarEvolution::getSMaxExpr(SmallVectorImpl<const SCEV *> &Ops) { in getSMaxExpr()
3815 const SCEV *ScalarEvolution::getUMaxExpr(const SCEV *LHS, const SCEV *RHS) { in getUMaxExpr()
3820 const SCEV *ScalarEvolution::getUMaxExpr(SmallVectorImpl<const SCEV *> &Ops) { in getUMaxExpr()
3824 const SCEV *ScalarEvolution::getSMinExpr(const SCEV *LHS, in getSMinExpr()
3830 const SCEV *ScalarEvolution::getSMinExpr(SmallVectorImpl<const SCEV *> &Ops) { in getSMinExpr()
3834 const SCEV *ScalarEvolution::getUMinExpr(const SCEV *LHS, in getUMinExpr()
3840 const SCEV *ScalarEvolution::getUMinExpr(SmallVectorImpl<const SCEV *> &Ops) { in getUMinExpr()
3845 ScalarEvolution::getSizeOfScalableVectorExpr(Type *IntTy, in getSizeOfScalableVectorExpr()
3856 const SCEV *ScalarEvolution::getSizeOfExpr(Type *IntTy, Type *AllocTy) { in getSizeOfExpr()
3865 const SCEV *ScalarEvolution::getStoreSizeOfExpr(Type *IntTy, Type *StoreTy) { in getStoreSizeOfExpr()
3874 const SCEV *ScalarEvolution::getOffsetOfExpr(Type *IntTy, in getOffsetOfExpr()
3884 const SCEV *ScalarEvolution::getUnknown(Value *V) { in getUnknown()
3914 bool ScalarEvolution::isSCEVable(Type *Ty) const { in isSCEVable()
3921 uint64_t ScalarEvolution::getTypeSizeInBits(Type *Ty) const { in getTypeSizeInBits()
3931 Type *ScalarEvolution::getEffectiveSCEVType(Type *Ty) const { in getEffectiveSCEVType()
3942 Type *ScalarEvolution::getWiderType(Type *T1, Type *T2) const { in getWiderType()
3946 const SCEV *ScalarEvolution::getCouldNotCompute() { in getCouldNotCompute()
3950 bool ScalarEvolution::checkValidity(const SCEV *S) const { in checkValidity()
3959 bool ScalarEvolution::containsAddRecurrence(const SCEV *S) { in containsAddRecurrence()
3990 ScalarEvolution::ValueOffsetPairSetVector *
3991 ScalarEvolution::getSCEVValues(const SCEV *S) { in getSCEVValues()
4008 void ScalarEvolution::eraseValueFromMap(Value *V) { in eraseValueFromMap()
4048 const SCEV *ScalarEvolution::getSCEV(Value *V) { in getSCEV()
4080 const SCEV *ScalarEvolution::getExistingSCEV(Value *V) { in getExistingSCEV()
4095 const SCEV *ScalarEvolution::getNegativeSCEV(const SCEV *V, in getNegativeSCEV()
4122 const SCEV *ScalarEvolution::getNotSCEV(const SCEV *V) { in getNotSCEV()
4150 static const SCEV *removePointerBase(ScalarEvolution *SE, const SCEV *P) { in removePointerBase()
4184 const SCEV *ScalarEvolution::getMinusSCEV(const SCEV *LHS, const SCEV *RHS, in getMinusSCEV()
4234 const SCEV *ScalarEvolution::getTruncateOrZeroExtend(const SCEV *V, Type *Ty, in getTruncateOrZeroExtend()
4246 const SCEV *ScalarEvolution::getTruncateOrSignExtend(const SCEV *V, Type *Ty, in getTruncateOrSignExtend()
4259 ScalarEvolution::getNoopOrZeroExtend(const SCEV *V, Type *Ty) { in getNoopOrZeroExtend()
4271 ScalarEvolution::getNoopOrSignExtend(const SCEV *V, Type *Ty) { in getNoopOrSignExtend()
4283 ScalarEvolution::getNoopOrAnyExtend(const SCEV *V, Type *Ty) { in getNoopOrAnyExtend()
4295 ScalarEvolution::getTruncateOrNoop(const SCEV *V, Type *Ty) { in getTruncateOrNoop()
4306 const SCEV *ScalarEvolution::getUMaxFromMismatchedTypes(const SCEV *LHS, in getUMaxFromMismatchedTypes()
4319 const SCEV *ScalarEvolution::getUMinFromMismatchedTypes(const SCEV *LHS, in getUMinFromMismatchedTypes()
4325 const SCEV *ScalarEvolution::getUMinFromMismatchedTypes( in getUMinFromMismatchedTypes()
4350 const SCEV *ScalarEvolution::getPointerBase(const SCEV *V) { in getPointerBase()
4385 void ScalarEvolution::forgetSymbolicName(Instruction *PN, const SCEV *SymName) { in forgetSymbolicName()
4433 static const SCEV *rewrite(const SCEV *S, const Loop *L, ScalarEvolution &SE, in rewrite()
4463 explicit SCEVInitRewriter(const Loop *L, ScalarEvolution &SE) in SCEVInitRewriter()
4477 static const SCEV *rewrite(const SCEV *S, const Loop *L, ScalarEvolution &SE) { in rewrite()
4504 explicit SCEVPostIncRewriter(const Loop *L, ScalarEvolution &SE) in SCEVPostIncRewriter()
4519 ScalarEvolution &SE) { in rewrite()
4567 bool IsPosBECond, ScalarEvolution &SE) in SCEVBackedgeConditionFolder()
4595 ScalarEvolution &SE) { in rewrite()
4618 explicit SCEVShiftRewriter(const Loop *L, ScalarEvolution &SE) in SCEVShiftRewriter()
4628 ScalarEvolution::proveNoWrapViaConstantRanges(const SCEVAddRecExpr *AR) { in proveNoWrapViaConstantRanges()
4643 Result = ScalarEvolution::setFlags(Result, SCEV::FlagNSW); in proveNoWrapViaConstantRanges()
4653 Result = ScalarEvolution::setFlags(Result, SCEV::FlagNUW); in proveNoWrapViaConstantRanges()
4660 ScalarEvolution::proveNoSignedWrapViaInduction(const SCEVAddRecExpr *AR) { in proveNoSignedWrapViaInduction()
4709 ScalarEvolution::proveNoUnsignedWrapViaInduction(const SCEVAddRecExpr *AR) { in proveNoUnsignedWrapViaInduction()
4887 bool &Signed, ScalarEvolution &SE) { in isSimpleCastedPHI()
4985 ScalarEvolution::createAddRecFromPHIWithCastsImpl(const SCEVUnknown *SymbolicPHI) { in createAddRecFromPHIWithCastsImpl()
5196 ScalarEvolution::createAddRecFromPHIWithCasts(const SCEVUnknown *SymbolicPHI) { in createAddRecFromPHIWithCasts()
5260 const SCEV *ScalarEvolution::createSimpleAffineAddRec(PHINode *PN, in createSimpleAffineAddRec()
5304 const SCEV *ScalarEvolution::createAddRecFromPHI(PHINode *PN) { in createAddRecFromPHI()
5576 const SCEV *ScalarEvolution::createNodeFromSelectLikePHI(PHINode *PN) { in createNodeFromSelectLikePHI()
5615 const SCEV *ScalarEvolution::createNodeForPHI(PHINode *PN) { in createNodeForPHI()
5634 const SCEV *ScalarEvolution::createNodeForSelectOrPHI(Instruction *I, in createNodeForSelectOrPHI()
5744 const SCEV *ScalarEvolution::createNodeForGEP(GEPOperator *GEP) { in createNodeForGEP()
5755 uint32_t ScalarEvolution::GetMinTrailingZerosImpl(const SCEV *S) { in GetMinTrailingZerosImpl()
5833 uint32_t ScalarEvolution::GetMinTrailingZeros(const SCEV *S) { in GetMinTrailingZeros()
5853 void ScalarEvolution::setNoWrapFlags(SCEVAddRecExpr *AddRec, in setNoWrapFlags()
5862 ConstantRange ScalarEvolution::
5985 ScalarEvolution::getRangeRef(const SCEV *S, in getRangeRef()
5986 ScalarEvolution::RangeSignHint SignHint) { in getRangeRef()
5988 SignHint == ScalarEvolution::HINT_RANGE_UNSIGNED ? UnsignedRanges in getRangeRef()
5991 SignHint == ScalarEvolution::HINT_RANGE_UNSIGNED in getRangeRef()
6010 if (SignHint == ScalarEvolution::HINT_RANGE_UNSIGNED) in getRangeRef()
6320 ConstantRange ScalarEvolution::getRangeForAffineAR(const SCEV *Start, in getRangeForAffineAR()
6353 ConstantRange ScalarEvolution::getRangeForAffineNoSelfWrappingAR( in getRangeForAffineNoSelfWrappingAR()
6355 ScalarEvolution::RangeSignHint SignHint) { in getRangeForAffineNoSelfWrappingAR()
6421 ConstantRange ScalarEvolution::getRangeViaFactoring(const SCEV *Start, in getRangeViaFactoring()
6433 explicit SelectPattern(ScalarEvolution &SE, unsigned BitWidth, in getRangeViaFactoring()
6536 SCEV::NoWrapFlags ScalarEvolution::getNoWrapFlagsFromUB(const Value *V) { in getNoWrapFlagsFromUB()
6543 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNUW); in getNoWrapFlagsFromUB()
6545 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNSW); in getNoWrapFlagsFromUB()
6552 bool ScalarEvolution::isSCEVExprNeverPoison(const Instruction *I) { in isSCEVExprNeverPoison()
6608 bool ScalarEvolution::isAddRecNeverPoison(const Instruction *I, const Loop *L) { in isAddRecNeverPoison()
6670 ScalarEvolution::LoopProperties
6671 ScalarEvolution::getLoopProperties(const Loop *L) { in getLoopProperties()
6672 using LoopProperties = ScalarEvolution::LoopProperties; in getLoopProperties()
6704 bool ScalarEvolution::loopIsFiniteByAssumption(const Loop *L) { in loopIsFiniteByAssumption()
6711 const SCEV *ScalarEvolution::createSCEV(Value *V) { in createSCEV()
7147 const SCEV *ScalarEvolution::getTripCountFromExitCount(const SCEV *ExitCount) { in getTripCountFromExitCount()
7167 unsigned ScalarEvolution::getSmallConstantTripCount(const Loop *L) { in getSmallConstantTripCount()
7173 ScalarEvolution::getSmallConstantTripCount(const Loop *L, in getSmallConstantTripCount()
7183 unsigned ScalarEvolution::getSmallConstantMaxTripCount(const Loop *L) { in getSmallConstantMaxTripCount()
7189 unsigned ScalarEvolution::getSmallConstantTripMultiple(const Loop *L) { in getSmallConstantTripMultiple()
7203 unsigned ScalarEvolution::getSmallConstantTripMultiple(const Loop *L, in getSmallConstantTripMultiple()
7244 ScalarEvolution::getSmallConstantTripMultiple(const Loop *L, in getSmallConstantTripMultiple()
7253 const SCEV *ScalarEvolution::getExitCount(const Loop *L, in getExitCount()
7267 ScalarEvolution::getPredicatedBackedgeTakenCount(const Loop *L, in getPredicatedBackedgeTakenCount()
7272 const SCEV *ScalarEvolution::getBackedgeTakenCount(const Loop *L, in getBackedgeTakenCount()
7285 bool ScalarEvolution::isBackedgeTakenCountMaxOrZero(const Loop *L) { in isBackedgeTakenCountMaxOrZero()
7299 const ScalarEvolution::BackedgeTakenInfo &
7300 ScalarEvolution::getPredicatedBackedgeTakenInfo(const Loop *L) { in getPredicatedBackedgeTakenInfo()
7316 ScalarEvolution::BackedgeTakenInfo &
7317 ScalarEvolution::getBackedgeTakenInfo(const Loop *L) { in getBackedgeTakenInfo()
7418 void ScalarEvolution::forgetAllLoops() { in forgetAllLoops()
7440 void ScalarEvolution::forgetLoop(const Loop *L) { in forgetLoop()
7497 void ScalarEvolution::forgetTopmostLoop(const Loop *L) { in forgetTopmostLoop()
7503 void ScalarEvolution::forgetValue(Value *V) { in forgetValue()
7530 void ScalarEvolution::forgetLoopDispositions(const Loop *L) { in forgetLoopDispositions()
7541 ScalarEvolution::BackedgeTakenInfo::getExact(const Loop *L, ScalarEvolution *SE, in getExact()
7576 ScalarEvolution::BackedgeTakenInfo::getExact(const BasicBlock *ExitingBlock, in getExact()
7577 ScalarEvolution *SE) const { in getExact()
7585 const SCEV *ScalarEvolution::BackedgeTakenInfo::getConstantMax( in getConstantMax()
7586 const BasicBlock *ExitingBlock, ScalarEvolution *SE) const { in getConstantMax()
7596 ScalarEvolution::BackedgeTakenInfo::getConstantMax(ScalarEvolution *SE) const { in getConstantMax()
7611 ScalarEvolution::BackedgeTakenInfo::getSymbolicMax(const Loop *L, in getSymbolicMax()
7612 ScalarEvolution *SE) { in getSymbolicMax()
7618 bool ScalarEvolution::BackedgeTakenInfo::isConstantMaxOrZero( in isConstantMaxOrZero()
7619 ScalarEvolution *SE) const { in isConstantMaxOrZero()
7626 bool ScalarEvolution::BackedgeTakenInfo::hasOperand(const SCEV *S) const { in hasOperand()
7630 ScalarEvolution::ExitLimit::ExitLimit(const SCEV *E) in ExitLimit()
7634 ScalarEvolution::ExitLimit::ExitLimit( in ExitLimit()
7653 ScalarEvolution::ExitLimit::ExitLimit( in ExitLimit()
7659 ScalarEvolution::ExitLimit::ExitLimit(const SCEV *E, const SCEV *M, in ExitLimit()
7679 ScalarEvolution::BackedgeTakenInfo::BackedgeTakenInfo( in BackedgeTakenInfo()
7680 ArrayRef<ScalarEvolution::BackedgeTakenInfo::EdgeExitInfo> ExitCounts, in BackedgeTakenInfo()
7683 using EdgeExitInfo = ScalarEvolution::BackedgeTakenInfo::EdgeExitInfo; in BackedgeTakenInfo()
7716 ScalarEvolution::BackedgeTakenInfo
7717 ScalarEvolution::computeBackedgeTakenCount(const Loop *L, in computeBackedgeTakenCount()
7722 using EdgeExitInfo = ScalarEvolution::BackedgeTakenInfo::EdgeExitInfo; in computeBackedgeTakenCount()
7798 ScalarEvolution::ExitLimit
7799 ScalarEvolution::computeExitLimit(const Loop *L, BasicBlock *ExitingBlock, in computeExitLimit()
7838 ScalarEvolution::ExitLimit ScalarEvolution::computeExitLimitFromCond( in computeExitLimitFromCond()
7841 ScalarEvolution::ExitLimitCacheTy Cache(L, ExitIfTrue, AllowPredicates); in computeExitLimitFromCond()
7846 Optional<ScalarEvolution::ExitLimit>
7847 ScalarEvolution::ExitLimitCache::find(const Loop *L, Value *ExitCond, in find()
7863 void ScalarEvolution::ExitLimitCache::insert(const Loop *L, Value *ExitCond, in insert()
7878 ScalarEvolution::ExitLimit ScalarEvolution::computeExitLimitFromCondCached( in computeExitLimitFromCondCached()
7892 ScalarEvolution::ExitLimit ScalarEvolution::computeExitLimitFromCondImpl( in computeExitLimitFromCondImpl()
7930 Optional<ScalarEvolution::ExitLimit>
7931 ScalarEvolution::computeExitLimitFromCondFromBinOp( in computeExitLimitFromCondFromBinOp()
8019 ScalarEvolution::ExitLimit
8020 ScalarEvolution::computeExitLimitFromICmp(const Loop *L, in computeExitLimitFromICmp()
8138 ScalarEvolution::ExitLimit
8139 ScalarEvolution::computeExitLimitFromSingleExitSwitch(const Loop *L, in computeExitLimitFromSingleExitSwitch()
8164 ScalarEvolution &SE) { in EvaluateConstantChrecAtConstant()
8174 ScalarEvolution::ExitLimit
8175 ScalarEvolution::computeLoadConstantCompareExitLimit( in computeLoadConstantCompareExitLimit()
8251 ScalarEvolution::ExitLimit ScalarEvolution::computeShiftCompareExitLimit( in computeShiftCompareExitLimit()
8560 ScalarEvolution::getConstantEvolutionLoopExitValue(PHINode *PN, in getConstantEvolutionLoopExitValue()
8642 const SCEV *ScalarEvolution::computeExitCountExhaustively(const Loop *L, in computeExitCountExhaustively()
8709 const SCEV *ScalarEvolution::getSCEVAtScope(const SCEV *V, const Loop *L) { in getSCEVAtScope()
8839 const SCEV *ScalarEvolution::computeSCEVAtScope(const SCEV *V, const Loop *L) { in computeSCEVAtScope()
9077 const SCEV *ScalarEvolution::getSCEVAtScope(Value *V, const Loop *L) { in getSCEVAtScope()
9081 const SCEV *ScalarEvolution::stripInjectiveFunctions(const SCEV *S) const { in stripInjectiveFunctions()
9098 ScalarEvolution &SE) { in SolveLinEquationWithOverflow()
9246 SolveQuadraticAddRecExact(const SCEVAddRecExpr *AddRec, ScalarEvolution &SE) { in SolveQuadraticAddRecExact()
9279 const ConstantRange &Range, ScalarEvolution &SE) { in SolveQuadraticAddRecRange()
9405 ScalarEvolution::ExitLimit
9406 ScalarEvolution::howFarToZero(const SCEV *V, const Loop *L, bool ControlsExit, in howFarToZero()
9542 ScalarEvolution::ExitLimit
9543 ScalarEvolution::howFarToNonZero(const SCEV *V, const Loop *L) { in howFarToNonZero()
9562 ScalarEvolution::getPredecessorWithUniqueSuccessorForBB(const BasicBlock *BB) in getPredecessorWithUniqueSuccessorForBB()
9607 bool ScalarEvolution::SimplifyICmpOperands(ICmpInst::Predicate &Pred, in SimplifyICmpOperands()
9804 bool ScalarEvolution::isKnownNegative(const SCEV *S) { in isKnownNegative()
9808 bool ScalarEvolution::isKnownPositive(const SCEV *S) { in isKnownPositive()
9812 bool ScalarEvolution::isKnownNonNegative(const SCEV *S) { in isKnownNonNegative()
9816 bool ScalarEvolution::isKnownNonPositive(const SCEV *S) { in isKnownNonPositive()
9820 bool ScalarEvolution::isKnownNonZero(const SCEV *S) { in isKnownNonZero()
9825 ScalarEvolution::SplitIntoInitAndPostInc(const Loop *L, const SCEV *S) { in SplitIntoInitAndPostInc()
9836 bool ScalarEvolution::isKnownViaInduction(ICmpInst::Predicate Pred, in isKnownViaInduction()
9887 bool ScalarEvolution::isKnownPredicate(ICmpInst::Predicate Pred, in isKnownPredicate()
9902 Optional<bool> ScalarEvolution::evaluatePredicate(ICmpInst::Predicate Pred, in evaluatePredicate()
9912 bool ScalarEvolution::isKnownPredicateAt(ICmpInst::Predicate Pred, in isKnownPredicateAt()
9921 ScalarEvolution::evaluatePredicateAt(ICmpInst::Predicate Pred, const SCEV *LHS, in evaluatePredicateAt()
9937 bool ScalarEvolution::isKnownOnEveryIteration(ICmpInst::Predicate Pred, in isKnownOnEveryIteration()
9945 Optional<ScalarEvolution::MonotonicPredicateType>
9946 ScalarEvolution::getMonotonicPredicateType(const SCEVAddRecExpr *LHS, in getMonotonicPredicateType()
9966 Optional<ScalarEvolution::MonotonicPredicateType>
9967 ScalarEvolution::getMonotonicPredicateTypeImpl(const SCEVAddRecExpr *LHS, in getMonotonicPredicateTypeImpl()
10010 Optional<ScalarEvolution::LoopInvariantPredicate>
10011 ScalarEvolution::getLoopInvariantPredicate(ICmpInst::Predicate Pred, in getLoopInvariantPredicate()
10048 bool Increasing = *MonotonicType == ScalarEvolution::MonotonicallyIncreasing; in getLoopInvariantPredicate()
10054 return ScalarEvolution::LoopInvariantPredicate(Pred, ArLHS->getStart(), RHS); in getLoopInvariantPredicate()
10057 Optional<ScalarEvolution::LoopInvariantPredicate>
10058 ScalarEvolution::getLoopInvariantExitCondDuringFirstIterations( in getLoopInvariantExitCondDuringFirstIterations()
10118 return ScalarEvolution::LoopInvariantPredicate(Pred, Start, RHS); in getLoopInvariantExitCondDuringFirstIterations()
10121 bool ScalarEvolution::isKnownPredicateViaConstantRanges( in isKnownPredicateViaConstantRanges()
10153 bool ScalarEvolution::isKnownPredicateViaNoOverflow(ICmpInst::Predicate Pred, in isKnownPredicateViaNoOverflow()
10246 bool ScalarEvolution::isKnownPredicateViaSplitting(ICmpInst::Predicate Pred, in isKnownPredicateViaSplitting()
10268 bool ScalarEvolution::isImpliedViaGuard(const BasicBlock *BB, in isImpliedViaGuard()
10289 ScalarEvolution::isLoopBackedgeGuardedByCond(const Loop *L, in isLoopBackedgeGuardedByCond()
10398 bool ScalarEvolution::isBasicBlockEntryGuardedByCond(const BasicBlock *BB, in isBasicBlockEntryGuardedByCond()
10504 bool ScalarEvolution::isLoopEntryGuardedByCond(const Loop *L, in isLoopEntryGuardedByCond()
10525 bool ScalarEvolution::isImpliedCond(ICmpInst::Predicate Pred, const SCEV *LHS, in isImpliedCond()
10569 bool ScalarEvolution::isImpliedCond(ICmpInst::Predicate Pred, const SCEV *LHS, in isImpliedCond()
10621 bool ScalarEvolution::isImpliedCondBalancedTypes( in isImpliedCondBalancedTypes()
10781 bool ScalarEvolution::splitBinaryAdd(const SCEV *Expr, in splitBinaryAdd()
10794 Optional<APInt> ScalarEvolution::computeConstantDifference(const SCEV *More, in computeConstantDifference()
10853 bool ScalarEvolution::isImpliedCondOperandsViaAddRecStart( in isImpliedCondOperandsViaAddRecStart()
10898 bool ScalarEvolution::isImpliedCondOperandsViaNoOverflow( in isImpliedCondOperandsViaNoOverflow()
10975 bool ScalarEvolution::isImpliedViaMerge(ICmpInst::Predicate Pred, in isImpliedViaMerge()
11089 bool ScalarEvolution::isImpliedCondOperands(ICmpInst::Predicate Pred, in isImpliedCondOperands()
11119 static bool IsKnownPredicateViaAddRecStart(ScalarEvolution &SE, in IsKnownPredicateViaAddRecStart()
11153 static bool IsKnownPredicateViaMinOrMax(ScalarEvolution &SE, in IsKnownPredicateViaMinOrMax()
11184 bool ScalarEvolution::isImpliedViaOperations(ICmpInst::Predicate Pred, in isImpliedViaOperations()
11385 ScalarEvolution::isKnownViaNonRecursiveReasoning(ICmpInst::Predicate Pred, in isKnownViaNonRecursiveReasoning()
11395 ScalarEvolution::isImpliedCondOperandsHelper(ICmpInst::Predicate Pred, in isImpliedCondOperandsHelper()
11439 bool ScalarEvolution::isImpliedCondOperandsViaRanges(ICmpInst::Predicate Pred, in isImpliedCondOperandsViaRanges()
11471 bool ScalarEvolution::canIVOverflowOnLT(const SCEV *RHS, const SCEV *Stride, in canIVOverflowOnLT()
11495 bool ScalarEvolution::canIVOverflowOnGT(const SCEV *RHS, const SCEV *Stride, in canIVOverflowOnGT()
11518 const SCEV *ScalarEvolution::getUDivCeilSCEV(const SCEV *N, const SCEV *D) { in getUDivCeilSCEV()
11527 const SCEV *ScalarEvolution::computeMaxBECountForLT(const SCEV *Start, in computeMaxBECountForLT()
11570 ScalarEvolution::ExitLimit
11571 ScalarEvolution::howManyLessThans(const SCEV *LHS, const SCEV *RHS, in howManyLessThans()
11951 ScalarEvolution::ExitLimit
11952 ScalarEvolution::howManyGreaterThans(const SCEV *LHS, const SCEV *RHS, in howManyGreaterThans()
12048 ScalarEvolution &SE) const { in getNumIterationsInRange()
12119 SCEVAddRecExpr::getPostIncExpr(ScalarEvolution &SE) const { in getPostIncExpr()
12156 ScalarEvolution &SE;
12159 SCEVCollectStrides(ScalarEvolution &SE, SmallVectorImpl<const SCEV *> &S) in SCEVCollectStrides()
12231 ScalarEvolution &SE;
12233 SCEVCollectAddRecMultiplies(SmallVectorImpl<const SCEV *> &T, ScalarEvolution &SE) in SCEVCollectAddRecMultiplies()
12277 void ScalarEvolution::collectParametricTerms(const SCEV *Expr, in collectParametricTerms()
12304 static bool findArrayDimensionsRec(ScalarEvolution &SE, in findArrayDimensionsRec()
12364 static const SCEV *removeConstantFactors(ScalarEvolution &SE, const SCEV *T) { in removeConstantFactors()
12384 const SCEV *ScalarEvolution::getElementSize(Instruction *Inst) { in getElementSize()
12397 void ScalarEvolution::findArrayDimensions(SmallVectorImpl<const SCEV *> &Terms, in findArrayDimensions()
12460 void ScalarEvolution::computeAccessFunctions( in computeAccessFunctions()
12566 void ScalarEvolution::delinearize(const SCEV *Expr, in delinearize()
12602 bool ScalarEvolution::getIndexExpressionsFromGEP( in getIndexExpressionsFromGEP()
12643 void ScalarEvolution::SCEVCallbackVH::deleted() { in deleted()
12651 void ScalarEvolution::SCEVCallbackVH::allUsesReplacedWith(Value *V) { in allUsesReplacedWith()
12680 ScalarEvolution::SCEVCallbackVH::SCEVCallbackVH(Value *V, ScalarEvolution *se) in SCEVCallbackVH()
12687 ScalarEvolution::ScalarEvolution(Function &F, TargetLibraryInfo &TLI, in ScalarEvolution() function in ScalarEvolution
12708 ScalarEvolution::ScalarEvolution(ScalarEvolution &&Arg) in ScalarEvolution() function in ScalarEvolution
12736 ScalarEvolution::~ScalarEvolution() { in ~ScalarEvolution()
12759 bool ScalarEvolution::hasLoopInvariantBackedgeTakenCount(const Loop *L) { in hasLoopInvariantBackedgeTakenCount()
12763 static void PrintLoopInfo(raw_ostream &OS, ScalarEvolution *SE, in PrintLoopInfo()
12825 static StringRef loopDispositionToStr(ScalarEvolution::LoopDisposition LD) { in loopDispositionToStr()
12827 case ScalarEvolution::LoopVariant: in loopDispositionToStr()
12829 case ScalarEvolution::LoopInvariant: in loopDispositionToStr()
12831 case ScalarEvolution::LoopComputable: in loopDispositionToStr()
12837 void ScalarEvolution::print(raw_ostream &OS) const { in print()
12844 ScalarEvolution &SE = *const_cast<ScalarEvolution *>(this); in print()
12927 ScalarEvolution::LoopDisposition
12928 ScalarEvolution::getLoopDisposition(const SCEV *S, const Loop *L) { in getLoopDisposition()
12946 ScalarEvolution::LoopDisposition
12947 ScalarEvolution::computeLoopDisposition(const SCEV *S, const Loop *L) { in computeLoopDisposition()
13027 bool ScalarEvolution::isLoopInvariant(const SCEV *S, const Loop *L) { in isLoopInvariant()
13031 bool ScalarEvolution::hasComputableLoopEvolution(const SCEV *S, const Loop *L) { in hasComputableLoopEvolution()
13035 ScalarEvolution::BlockDisposition
13036 ScalarEvolution::getBlockDisposition(const SCEV *S, const BasicBlock *BB) { in getBlockDisposition()
13054 ScalarEvolution::BlockDisposition
13055 ScalarEvolution::computeBlockDisposition(const SCEV *S, const BasicBlock *BB) { in computeBlockDisposition()
13121 bool ScalarEvolution::dominates(const SCEV *S, const BasicBlock *BB) { in dominates()
13125 bool ScalarEvolution::properlyDominates(const SCEV *S, const BasicBlock *BB) { in properlyDominates()
13129 bool ScalarEvolution::hasOperand(const SCEV *S, const SCEV *Op) const { in hasOperand()
13134 ScalarEvolution::forgetMemoizedResults(const SCEV *S) { in forgetMemoizedResults()
13169 ScalarEvolution::getUsedLoops(const SCEV *S, in getUsedLoops()
13188 void ScalarEvolution::addToLoopUseLists(const SCEV *S) { in addToLoopUseLists()
13195 void ScalarEvolution::verify() const { in verify()
13196 ScalarEvolution &SE = *const_cast<ScalarEvolution *>(this); in verify()
13197 ScalarEvolution SE2(F, TLI, AC, DT, LI); in verify()
13203 SCEVMapper(ScalarEvolution &SE) : SCEVRewriteVisitor<SCEVMapper>(SE) {} in verify()
13225 const_cast<ScalarEvolution *>(this)->getBackedgeTakenCount(L)); in verify()
13287 bool ScalarEvolution::invalidate( in invalidate()
13301 ScalarEvolution ScalarEvolutionAnalysis::run(Function &F, in run()
13303 return ScalarEvolution(F, AM.getResult<TargetLibraryAnalysis>(F), in run()
13342 SE.reset(new ScalarEvolution( in runOnFunction()
13371 const SCEVPredicate *ScalarEvolution::getEqualPredicate(const SCEV *LHS, in getEqualPredicate()
13389 const SCEVPredicate *ScalarEvolution::getWrapPredicate( in getWrapPredicate()
13419 static const SCEV *rewrite(const SCEV *S, const Loop *L, ScalarEvolution &SE, in rewrite()
13470 explicit SCEVPredicateRewriter(const Loop *L, ScalarEvolution &SE, in SCEVPredicateRewriter()
13523 const SCEV *ScalarEvolution::rewriteUsingPredicate(const SCEV *S, const Loop *L, in rewriteUsingPredicate()
13528 const SCEVAddRecExpr *ScalarEvolution::convertSCEVToAddRecWithPredicates( in convertSCEVToAddRecWithPredicates()
13592 if (ScalarEvolution::setFlags(ScevFlags, SCEV::FlagNSW) == ScevFlags) in isAlwaysTrue()
13609 ScalarEvolution &SE) { in getImpliedFlags()
13614 if (ScalarEvolution::setFlags(StaticFlags, SCEV::FlagNSW) == StaticFlags) in getImpliedFlags()
13617 if (ScalarEvolution::setFlags(StaticFlags, SCEV::FlagNUW) == StaticFlags) { in getImpliedFlags()
13684 PredicatedScalarEvolution::PredicatedScalarEvolution(ScalarEvolution &SE, in PredicatedScalarEvolution()
13821 bool ScalarEvolution::matchURem(const SCEV *Expr, const SCEV *&LHS, in matchURem()
13875 ScalarEvolution::computeSymbolicMaxBackedgeTakenCount(const Loop *L) { in computeSymbolicMaxBackedgeTakenCount()
13887 ScalarEvolution::ConstantMaximum); in computeSymbolicMaxBackedgeTakenCount()
13908 SCEVLoopGuardRewriter(ScalarEvolution &SE, ValueToSCEVMapTy &M) in SCEVLoopGuardRewriter()
13921 const SCEV *ScalarEvolution::applyLoopGuards(const SCEV *Expr, const Loop *L) { in applyLoopGuards()