Lines Matching refs:ScalarEvolution
402 const SCEV *ScalarEvolution::getConstant(ConstantInt *V) { in getConstant()
413 const SCEV *ScalarEvolution::getConstant(const APInt &Val) { in getConstant()
418 ScalarEvolution::getConstant(Type *Ty, uint64_t V, bool isSigned) { in getConstant()
855 static void divide(ScalarEvolution &SE, const SCEV *Numerator, in divide()
1054 SCEVDivision(ScalarEvolution &S, const SCEV *Numerator, in SCEVDivision()
1073 ScalarEvolution &SE;
1085 ScalarEvolution &SE, in BinomialCoefficient()
1203 ScalarEvolution &SE) const { in evaluateAtIteration()
1222 const SCEV *ScalarEvolution::getTruncateExpr(const SCEV *Op, in getTruncateExpr()
1307 ScalarEvolution *SE) { in getSignedOverflowLimitForStep()
1327 ScalarEvolution *SE) { in getUnsignedOverflowLimitForStep()
1338 typedef const SCEV *(ScalarEvolution::*GetExtendExprTy)(const SCEV *, Type *,
1363 ScalarEvolution *SE) { in getOverflowLimitForStep()
1369 SCEVSignExtendExpr>::GetExtendExpr = &ScalarEvolution::getSignExtendExpr;
1379 ScalarEvolution *SE) { in getOverflowLimitForStep()
1385 SCEVZeroExtendExpr>::GetExtendExpr = &ScalarEvolution::getZeroExtendExpr;
1398 ScalarEvolution *SE, unsigned Depth) { in getPreStartForExtend()
1427 ScalarEvolution::maskFlags(SA->getNoWrapFlags(), SCEV::FlagNUW); in getPreStartForExtend()
1472 ScalarEvolution *SE, in getExtendAddRecStart()
1518 bool ScalarEvolution::proveNoWrapByVaryingStart(const SCEV *Start, in proveNoWrapByVaryingStart()
1565 static APInt extractConstantWithoutWrapping(ScalarEvolution &SE, in extractConstantWithoutWrapping()
1586 static APInt extractConstantWithoutWrapping(ScalarEvolution &SE, in extractConstantWithoutWrapping()
1598 ScalarEvolution::getZeroExtendExpr(const SCEV *Op, Type *Ty, unsigned Depth) { in getZeroExtendExpr()
1904 ScalarEvolution::getSignExtendExpr(const SCEV *Op, Type *Ty, unsigned Depth) { in getSignExtendExpr()
2157 const SCEV *ScalarEvolution::getAnyExtendExpr(const SCEV *Op, in getAnyExtendExpr()
2233 ScalarEvolution &SE) { in CollectAddOperandsWithScales()
2297 StrengthenNoWrapFlags(ScalarEvolution *SE, SCEVTypes Type, in StrengthenNoWrapFlags()
2311 ScalarEvolution::maskFlags(Flags, SignOrUnsignMask); in StrengthenNoWrapFlags()
2320 ScalarEvolution::setFlags(Flags, (SCEV::NoWrapFlags)SignOrUnsignMask); in StrengthenNoWrapFlags()
2322 SignOrUnsignWrap = ScalarEvolution::maskFlags(Flags, SignOrUnsignMask); in StrengthenNoWrapFlags()
2346 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNSW); in StrengthenNoWrapFlags()
2354 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNUW); in StrengthenNoWrapFlags()
2361 bool ScalarEvolution::isAvailableAtLoopEntry(const SCEV *S, const Loop *L) { in isAvailableAtLoopEntry()
2366 const SCEV *ScalarEvolution::getAddExpr(SmallVectorImpl<const SCEV *> &Ops, in getAddExpr()
2746 ScalarEvolution::getOrCreateAddExpr(SmallVectorImpl<const SCEV *> &Ops, in getOrCreateAddExpr()
2768 ScalarEvolution::getOrCreateAddRecExpr(SmallVectorImpl<const SCEV *> &Ops, in getOrCreateAddRecExpr()
2791 ScalarEvolution::getOrCreateMulExpr(SmallVectorImpl<const SCEV *> &Ops, in getOrCreateMulExpr()
2867 const SCEV *ScalarEvolution::getMulExpr(SmallVectorImpl<const SCEV *> &Ops, in getMulExpr()
3117 const SCEV *ScalarEvolution::getURemExpr(const SCEV *LHS, in getURemExpr()
3146 const SCEV *ScalarEvolution::getUDivExpr(const SCEV *LHS, in getUDivExpr()
3296 const SCEV *ScalarEvolution::getUDivExactExpr(const SCEV *LHS, in getUDivExactExpr()
3351 const SCEV *ScalarEvolution::getAddRecExpr(const SCEV *Start, const SCEV *Step, in getAddRecExpr()
3369 ScalarEvolution::getAddRecExpr(SmallVectorImpl<const SCEV *> &Operands, in getAddRecExpr()
3445 ScalarEvolution::getGEPExpr(GEPOperator *GEP, in getGEPExpr()
3496 const SCEV *ScalarEvolution::getSMaxExpr(const SCEV *LHS, in getSMaxExpr()
3503 ScalarEvolution::getSMaxExpr(SmallVectorImpl<const SCEV *> &Ops) { in getSMaxExpr()
3598 const SCEV *ScalarEvolution::getUMaxExpr(const SCEV *LHS, in getUMaxExpr()
3605 ScalarEvolution::getUMaxExpr(SmallVectorImpl<const SCEV *> &Ops) { in getUMaxExpr()
3701 const SCEV *ScalarEvolution::getSMinExpr(const SCEV *LHS, in getSMinExpr()
3707 const SCEV *ScalarEvolution::getSMinExpr(SmallVectorImpl<const SCEV *> &Ops) { in getSMinExpr()
3715 const SCEV *ScalarEvolution::getUMinExpr(const SCEV *LHS, in getUMinExpr()
3721 const SCEV *ScalarEvolution::getUMinExpr(SmallVectorImpl<const SCEV *> &Ops) { in getUMinExpr()
3734 const SCEV *ScalarEvolution::getSizeOfExpr(Type *IntTy, Type *AllocTy) { in getSizeOfExpr()
3741 const SCEV *ScalarEvolution::getOffsetOfExpr(Type *IntTy, in getOffsetOfExpr()
3751 const SCEV *ScalarEvolution::getUnknown(Value *V) { in getUnknown()
3781 bool ScalarEvolution::isSCEVable(Type *Ty) const { in isSCEVable()
3788 uint64_t ScalarEvolution::getTypeSizeInBits(Type *Ty) const { in getTypeSizeInBits()
3798 Type *ScalarEvolution::getEffectiveSCEVType(Type *Ty) const { in getEffectiveSCEVType()
3809 Type *ScalarEvolution::getWiderType(Type *T1, Type *T2) const { in getWiderType()
3813 const SCEV *ScalarEvolution::getCouldNotCompute() { in getCouldNotCompute()
3817 bool ScalarEvolution::checkValidity(const SCEV *S) const { in checkValidity()
3826 bool ScalarEvolution::containsAddRecurrence(const SCEV *S) { in containsAddRecurrence()
3856 SetVector<ScalarEvolution::ValueOffsetPair> *
3857 ScalarEvolution::getSCEVValues(const SCEV *S) { in getSCEVValues()
3874 void ScalarEvolution::eraseValueFromMap(Value *V) { in eraseValueFromMap()
3914 const SCEV *ScalarEvolution::getSCEV(Value *V) { in getSCEV()
3946 const SCEV *ScalarEvolution::getExistingSCEV(Value *V) { in getExistingSCEV()
3961 const SCEV *ScalarEvolution::getNegativeSCEV(const SCEV *V, in getNegativeSCEV()
3974 const SCEV *ScalarEvolution::getNotSCEV(const SCEV *V) { in getNotSCEV()
3986 const SCEV *ScalarEvolution::getMinusSCEV(const SCEV *LHS, const SCEV *RHS, in getMinusSCEV()
4026 ScalarEvolution::getTruncateOrZeroExtend(const SCEV *V, Type *Ty) { in getTruncateOrZeroExtend()
4038 ScalarEvolution::getTruncateOrSignExtend(const SCEV *V, in getTruncateOrSignExtend()
4051 ScalarEvolution::getNoopOrZeroExtend(const SCEV *V, Type *Ty) { in getNoopOrZeroExtend()
4063 ScalarEvolution::getNoopOrSignExtend(const SCEV *V, Type *Ty) { in getNoopOrSignExtend()
4075 ScalarEvolution::getNoopOrAnyExtend(const SCEV *V, Type *Ty) { in getNoopOrAnyExtend()
4087 ScalarEvolution::getTruncateOrNoop(const SCEV *V, Type *Ty) { in getTruncateOrNoop()
4098 const SCEV *ScalarEvolution::getUMaxFromMismatchedTypes(const SCEV *LHS, in getUMaxFromMismatchedTypes()
4111 const SCEV *ScalarEvolution::getUMinFromMismatchedTypes(const SCEV *LHS, in getUMinFromMismatchedTypes()
4117 const SCEV *ScalarEvolution::getUMinFromMismatchedTypes( in getUMinFromMismatchedTypes()
4141 const SCEV *ScalarEvolution::getPointerBase(const SCEV *V) { in getPointerBase()
4174 void ScalarEvolution::forgetSymbolicName(Instruction *PN, const SCEV *SymName) { in forgetSymbolicName()
4222 static const SCEV *rewrite(const SCEV *S, const Loop *L, ScalarEvolution &SE, in rewrite()
4252 explicit SCEVInitRewriter(const Loop *L, ScalarEvolution &SE) in SCEVInitRewriter()
4266 static const SCEV *rewrite(const SCEV *S, const Loop *L, ScalarEvolution &SE) { in rewrite()
4293 explicit SCEVPostIncRewriter(const Loop *L, ScalarEvolution &SE) in SCEVPostIncRewriter()
4308 ScalarEvolution &SE) { in rewrite()
4356 bool IsPosBECond, ScalarEvolution &SE) in SCEVBackedgeConditionFolder()
4384 ScalarEvolution &SE) { in rewrite()
4407 explicit SCEVShiftRewriter(const Loop *L, ScalarEvolution &SE) in SCEVShiftRewriter()
4417 ScalarEvolution::proveNoWrapViaConstantRanges(const SCEVAddRecExpr *AR) { in proveNoWrapViaConstantRanges()
4432 Result = ScalarEvolution::setFlags(Result, SCEV::FlagNSW); in proveNoWrapViaConstantRanges()
4442 Result = ScalarEvolution::setFlags(Result, SCEV::FlagNUW); in proveNoWrapViaConstantRanges()
4600 bool &Signed, ScalarEvolution &SE) { in isSimpleCastedPHI()
4698 ScalarEvolution::createAddRecFromPHIWithCastsImpl(const SCEVUnknown *SymbolicPHI) { in createAddRecFromPHIWithCastsImpl()
4909 ScalarEvolution::createAddRecFromPHIWithCasts(const SCEVUnknown *SymbolicPHI) { in createAddRecFromPHIWithCasts()
4973 const SCEV *ScalarEvolution::createSimpleAffineAddRec(PHINode *PN, in createSimpleAffineAddRec()
5017 const SCEV *ScalarEvolution::createAddRecFromPHI(PHINode *PN) { in createAddRecFromPHI()
5280 const SCEV *ScalarEvolution::createNodeFromSelectLikePHI(PHINode *PN) { in createNodeFromSelectLikePHI()
5319 const SCEV *ScalarEvolution::createNodeForPHI(PHINode *PN) { in createNodeForPHI()
5338 const SCEV *ScalarEvolution::createNodeForSelectOrPHI(Instruction *I, in createNodeForSelectOrPHI()
5439 const SCEV *ScalarEvolution::createNodeForGEP(GEPOperator *GEP) { in createNodeForGEP()
5450 uint32_t ScalarEvolution::GetMinTrailingZerosImpl(const SCEV *S) { in GetMinTrailingZerosImpl()
5525 uint32_t ScalarEvolution::GetMinTrailingZeros(const SCEV *S) { in GetMinTrailingZeros()
5549 ScalarEvolution::getRangeRef(const SCEV *S, in getRangeRef()
5550 ScalarEvolution::RangeSignHint SignHint) { in getRangeRef()
5552 SignHint == ScalarEvolution::HINT_RANGE_UNSIGNED ? UnsignedRanges in getRangeRef()
5570 if (SignHint == ScalarEvolution::HINT_RANGE_UNSIGNED) in getRangeRef()
5695 if (SignHint == ScalarEvolution::HINT_RANGE_UNSIGNED) { in getRangeRef()
5703 assert(SignHint == ScalarEvolution::HINT_RANGE_SIGNED && in getRangeRef()
5805 ConstantRange ScalarEvolution::getRangeForAffineAR(const SCEV *Start, in getRangeForAffineAR()
5838 ConstantRange ScalarEvolution::getRangeViaFactoring(const SCEV *Start, in getRangeViaFactoring()
5850 explicit SelectPattern(ScalarEvolution &SE, unsigned BitWidth, in getRangeViaFactoring()
5953 SCEV::NoWrapFlags ScalarEvolution::getNoWrapFlagsFromUB(const Value *V) { in getNoWrapFlagsFromUB()
5960 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNUW); in getNoWrapFlagsFromUB()
5962 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNSW); in getNoWrapFlagsFromUB()
5969 bool ScalarEvolution::isSCEVExprNeverPoison(const Instruction *I) { in isSCEVExprNeverPoison()
6025 bool ScalarEvolution::isAddRecNeverPoison(const Instruction *I, const Loop *L) { in isAddRecNeverPoison()
6087 ScalarEvolution::LoopProperties
6088 ScalarEvolution::getLoopProperties(const Loop *L) { in getLoopProperties()
6089 using LoopProperties = ScalarEvolution::LoopProperties; in getLoopProperties()
6121 const SCEV *ScalarEvolution::createSCEV(Value *V) { in createSCEV()
6513 unsigned ScalarEvolution::getSmallConstantTripCount(const Loop *L) { in getSmallConstantTripCount()
6521 unsigned ScalarEvolution::getSmallConstantTripCount(const Loop *L, in getSmallConstantTripCount()
6531 unsigned ScalarEvolution::getSmallConstantMaxTripCount(const Loop *L) { in getSmallConstantMaxTripCount()
6537 unsigned ScalarEvolution::getSmallConstantTripMultiple(const Loop *L) { in getSmallConstantTripMultiple()
6558 ScalarEvolution::getSmallConstantTripMultiple(const Loop *L, in getSmallConstantTripMultiple()
6592 const SCEV *ScalarEvolution::getExitCount(const Loop *L, in getExitCount()
6598 ScalarEvolution::getPredicatedBackedgeTakenCount(const Loop *L, in getPredicatedBackedgeTakenCount()
6603 const SCEV *ScalarEvolution::getBackedgeTakenCount(const Loop *L) { in getBackedgeTakenCount()
6609 const SCEV *ScalarEvolution::getMaxBackedgeTakenCount(const Loop *L) { in getMaxBackedgeTakenCount()
6613 bool ScalarEvolution::isBackedgeTakenCountMaxOrZero(const Loop *L) { in isBackedgeTakenCountMaxOrZero()
6627 const ScalarEvolution::BackedgeTakenInfo &
6628 ScalarEvolution::getPredicatedBackedgeTakenInfo(const Loop *L) { in getPredicatedBackedgeTakenInfo()
6644 const ScalarEvolution::BackedgeTakenInfo &
6645 ScalarEvolution::getBackedgeTakenInfo(const Loop *L) { in getBackedgeTakenInfo()
6747 void ScalarEvolution::forgetLoop(const Loop *L) { in forgetLoop()
6813 void ScalarEvolution::forgetTopmostLoop(const Loop *L) { in forgetTopmostLoop()
6819 void ScalarEvolution::forgetValue(Value *V) { in forgetValue()
6853 ScalarEvolution::BackedgeTakenInfo::getExact(const Loop *L, ScalarEvolution *SE, in getExact()
6888 ScalarEvolution::BackedgeTakenInfo::getExact(BasicBlock *ExitingBlock, in getExact()
6889 ScalarEvolution *SE) const { in getExact()
6899 ScalarEvolution::BackedgeTakenInfo::getMax(ScalarEvolution *SE) const { in getMax()
6912 bool ScalarEvolution::BackedgeTakenInfo::isMaxOrZero(ScalarEvolution *SE) const { in isMaxOrZero()
6919 bool ScalarEvolution::BackedgeTakenInfo::hasOperand(const SCEV *S, in hasOperand()
6920 ScalarEvolution *SE) const { in hasOperand()
6933 ScalarEvolution::ExitLimit::ExitLimit(const SCEV *E) in ExitLimit()
6940 ScalarEvolution::ExitLimit::ExitLimit( in ExitLimit()
6955 ScalarEvolution::ExitLimit::ExitLimit( in ExitLimit()
6964 ScalarEvolution::ExitLimit::ExitLimit(const SCEV *E, const SCEV *M, in ExitLimit()
6974 ScalarEvolution::BackedgeTakenInfo::BackedgeTakenInfo( in BackedgeTakenInfo()
6975 SmallVectorImpl<ScalarEvolution::BackedgeTakenInfo::EdgeExitInfo> in BackedgeTakenInfo()
6979 using EdgeExitInfo = ScalarEvolution::BackedgeTakenInfo::EdgeExitInfo; in BackedgeTakenInfo()
7001 void ScalarEvolution::BackedgeTakenInfo::clear() { in clear()
7006 ScalarEvolution::BackedgeTakenInfo
7007 ScalarEvolution::computeBackedgeTakenCount(const Loop *L, in computeBackedgeTakenCount()
7012 using EdgeExitInfo = ScalarEvolution::BackedgeTakenInfo::EdgeExitInfo; in computeBackedgeTakenCount()
7077 ScalarEvolution::ExitLimit
7078 ScalarEvolution::computeExitLimit(const Loop *L, BasicBlock *ExitingBlock, in computeExitLimit()
7117 ScalarEvolution::ExitLimit ScalarEvolution::computeExitLimitFromCond( in computeExitLimitFromCond()
7120 ScalarEvolution::ExitLimitCacheTy Cache(L, ExitIfTrue, AllowPredicates); in computeExitLimitFromCond()
7125 Optional<ScalarEvolution::ExitLimit>
7126 ScalarEvolution::ExitLimitCache::find(const Loop *L, Value *ExitCond, in find()
7142 void ScalarEvolution::ExitLimitCache::insert(const Loop *L, Value *ExitCond, in insert()
7157 ScalarEvolution::ExitLimit ScalarEvolution::computeExitLimitFromCondCached( in computeExitLimitFromCondCached()
7171 ScalarEvolution::ExitLimit ScalarEvolution::computeExitLimitFromCondImpl( in computeExitLimitFromCondImpl()
7295 ScalarEvolution::ExitLimit
7296 ScalarEvolution::computeExitLimitFromICmp(const Loop *L, in computeExitLimitFromICmp()
7394 ScalarEvolution::ExitLimit
7395 ScalarEvolution::computeExitLimitFromSingleExitSwitch(const Loop *L, in computeExitLimitFromSingleExitSwitch()
7420 ScalarEvolution &SE) { in EvaluateConstantChrecAtConstant()
7430 ScalarEvolution::ExitLimit
7431 ScalarEvolution::computeLoadConstantCompareExitLimit( in computeLoadConstantCompareExitLimit()
7506 ScalarEvolution::ExitLimit ScalarEvolution::computeShiftCompareExitLimit( in computeShiftCompareExitLimit()
7815 ScalarEvolution::getConstantEvolutionLoopExitValue(PHINode *PN, in getConstantEvolutionLoopExitValue()
7897 const SCEV *ScalarEvolution::computeExitCountExhaustively(const Loop *L, in computeExitCountExhaustively()
7964 const SCEV *ScalarEvolution::getSCEVAtScope(const SCEV *V, const Loop *L) { in getSCEVAtScope()
8083 const SCEV *ScalarEvolution::computeSCEVAtScope(const SCEV *V, const Loop *L) { in computeSCEVAtScope()
8293 const SCEV *ScalarEvolution::getSCEVAtScope(Value *V, const Loop *L) { in getSCEVAtScope()
8297 const SCEV *ScalarEvolution::stripInjectiveFunctions(const SCEV *S) const { in stripInjectiveFunctions()
8314 ScalarEvolution &SE) { in SolveLinEquationWithOverflow()
8462 SolveQuadraticAddRecExact(const SCEVAddRecExpr *AddRec, ScalarEvolution &SE) { in SolveQuadraticAddRecExact()
8495 const ConstantRange &Range, ScalarEvolution &SE) { in SolveQuadraticAddRecRange()
8621 ScalarEvolution::ExitLimit
8622 ScalarEvolution::howFarToZero(const SCEV *V, const Loop *L, bool ControlsExit, in howFarToZero()
8750 ScalarEvolution::ExitLimit
8751 ScalarEvolution::howFarToNonZero(const SCEV *V, const Loop *L) { in howFarToNonZero()
8770 ScalarEvolution::getPredecessorWithUniqueSuccessorForBB(BasicBlock *BB) { in getPredecessorWithUniqueSuccessorForBB()
8814 bool ScalarEvolution::SimplifyICmpOperands(ICmpInst::Predicate &Pred, in SimplifyICmpOperands()
9011 bool ScalarEvolution::isKnownNegative(const SCEV *S) { in isKnownNegative()
9015 bool ScalarEvolution::isKnownPositive(const SCEV *S) { in isKnownPositive()
9019 bool ScalarEvolution::isKnownNonNegative(const SCEV *S) { in isKnownNonNegative()
9023 bool ScalarEvolution::isKnownNonPositive(const SCEV *S) { in isKnownNonPositive()
9027 bool ScalarEvolution::isKnownNonZero(const SCEV *S) { in isKnownNonZero()
9032 ScalarEvolution::SplitIntoInitAndPostInc(const Loop *L, const SCEV *S) { in SplitIntoInitAndPostInc()
9043 bool ScalarEvolution::isKnownViaInduction(ICmpInst::Predicate Pred, in isKnownViaInduction()
9092 bool ScalarEvolution::isKnownPredicate(ICmpInst::Predicate Pred, in isKnownPredicate()
9107 bool ScalarEvolution::isKnownOnEveryIteration(ICmpInst::Predicate Pred, in isKnownOnEveryIteration()
9115 bool ScalarEvolution::isMonotonicPredicate(const SCEVAddRecExpr *LHS, in isMonotonicPredicate()
9136 bool ScalarEvolution::isMonotonicPredicateImpl(const SCEVAddRecExpr *LHS, in isMonotonicPredicateImpl()
9191 bool ScalarEvolution::isLoopInvariantPredicate( in isLoopInvariantPredicate()
9242 bool ScalarEvolution::isKnownPredicateViaConstantRanges( in isKnownPredicateViaConstantRanges()
9272 bool ScalarEvolution::isKnownPredicateViaNoOverflow(ICmpInst::Predicate Pred, in isKnownPredicateViaNoOverflow()
9329 bool ScalarEvolution::isKnownPredicateViaSplitting(ICmpInst::Predicate Pred, in isKnownPredicateViaSplitting()
9351 bool ScalarEvolution::isImpliedViaGuard(BasicBlock *BB, in isImpliedViaGuard()
9372 ScalarEvolution::isLoopBackedgeGuardedByCond(const Loop *L, in isLoopBackedgeGuardedByCond()
9482 ScalarEvolution::isLoopEntryGuardedByCond(const Loop *L, in isLoopEntryGuardedByCond()
9592 bool ScalarEvolution::isImpliedCond(ICmpInst::Predicate Pred, in isImpliedCond()
9632 bool ScalarEvolution::isImpliedCond(ICmpInst::Predicate Pred, const SCEV *LHS, in isImpliedCond()
9775 bool ScalarEvolution::splitBinaryAdd(const SCEV *Expr, in splitBinaryAdd()
9788 Optional<APInt> ScalarEvolution::computeConstantDifference(const SCEV *More, in computeConstantDifference()
9843 bool ScalarEvolution::isImpliedCondOperandsViaNoOverflow( in isImpliedCondOperandsViaNoOverflow()
9920 bool ScalarEvolution::isImpliedViaMerge(ICmpInst::Predicate Pred, in isImpliedViaMerge()
10030 bool ScalarEvolution::isImpliedCondOperands(ICmpInst::Predicate Pred, in isImpliedCondOperands()
10075 static bool IsMinConsistingOf(ScalarEvolution &SE, in IsMinConsistingOf()
10085 static bool IsKnownPredicateViaAddRecStart(ScalarEvolution &SE, in IsKnownPredicateViaAddRecStart()
10119 static bool IsKnownPredicateViaMinOrMax(ScalarEvolution &SE, in IsKnownPredicateViaMinOrMax()
10150 bool ScalarEvolution::isImpliedViaOperations(ICmpInst::Predicate Pred, in isImpliedViaOperations()
10301 ScalarEvolution::isKnownViaNonRecursiveReasoning(ICmpInst::Predicate Pred, in isKnownViaNonRecursiveReasoning()
10310 ScalarEvolution::isImpliedCondOperandsHelper(ICmpInst::Predicate Pred, in isImpliedCondOperandsHelper()
10354 bool ScalarEvolution::isImpliedCondOperandsViaRanges(ICmpInst::Predicate Pred, in isImpliedCondOperandsViaRanges()
10389 bool ScalarEvolution::doesIVOverflowOnLT(const SCEV *RHS, const SCEV *Stride, in doesIVOverflowOnLT()
10415 bool ScalarEvolution::doesIVOverflowOnGT(const SCEV *RHS, const SCEV *Stride, in doesIVOverflowOnGT()
10439 const SCEV *ScalarEvolution::computeBECount(const SCEV *Delta, const SCEV *Step, in computeBECount()
10447 const SCEV *ScalarEvolution::computeMaxBECountForLT(const SCEV *Start, in computeMaxBECountForLT()
10490 ScalarEvolution::ExitLimit
10491 ScalarEvolution::howManyLessThans(const SCEV *LHS, const SCEV *RHS, in howManyLessThans()
10631 ScalarEvolution::ExitLimit
10632 ScalarEvolution::howManyGreaterThans(const SCEV *LHS, const SCEV *RHS, in howManyGreaterThans()
10709 ScalarEvolution &SE) const { in getNumIterationsInRange()
10780 SCEVAddRecExpr::getPostIncExpr(ScalarEvolution &SE) const { in getPostIncExpr()
10819 ScalarEvolution &SE;
10822 SCEVCollectStrides(ScalarEvolution &SE, SmallVectorImpl<const SCEV *> &S) in SCEVCollectStrides()
10894 ScalarEvolution &SE;
10896 SCEVCollectAddRecMultiplies(SmallVectorImpl<const SCEV *> &T, ScalarEvolution &SE) in SCEVCollectAddRecMultiplies()
10940 void ScalarEvolution::collectParametricTerms(const SCEV *Expr, in collectParametricTerms()
10967 static bool findArrayDimensionsRec(ScalarEvolution &SE, in findArrayDimensionsRec()
11028 static const SCEV *removeConstantFactors(ScalarEvolution &SE, const SCEV *T) { in removeConstantFactors()
11048 const SCEV *ScalarEvolution::getElementSize(Instruction *Inst) { in getElementSize()
11061 void ScalarEvolution::findArrayDimensions(SmallVectorImpl<const SCEV *> &Terms, in findArrayDimensions()
11124 void ScalarEvolution::computeAccessFunctions( in computeAccessFunctions()
11230 void ScalarEvolution::delinearize(const SCEV *Expr, in delinearize()
11270 void ScalarEvolution::SCEVCallbackVH::deleted() { in deleted()
11278 void ScalarEvolution::SCEVCallbackVH::allUsesReplacedWith(Value *V) { in allUsesReplacedWith()
11307 ScalarEvolution::SCEVCallbackVH::SCEVCallbackVH(Value *V, ScalarEvolution *se) in SCEVCallbackVH()
11314 ScalarEvolution::ScalarEvolution(Function &F, TargetLibraryInfo &TLI, in ScalarEvolution() function in ScalarEvolution
11335 ScalarEvolution::ScalarEvolution(ScalarEvolution &&Arg) in ScalarEvolution() function in ScalarEvolution
11363 ScalarEvolution::~ScalarEvolution() { in ~ScalarEvolution()
11391 bool ScalarEvolution::hasLoopInvariantBackedgeTakenCount(const Loop *L) { in hasLoopInvariantBackedgeTakenCount()
11395 static void PrintLoopInfo(raw_ostream &OS, ScalarEvolution *SE, in PrintLoopInfo()
11453 static StringRef loopDispositionToStr(ScalarEvolution::LoopDisposition LD) { in loopDispositionToStr()
11455 case ScalarEvolution::LoopVariant: in loopDispositionToStr()
11457 case ScalarEvolution::LoopInvariant: in loopDispositionToStr()
11459 case ScalarEvolution::LoopComputable: in loopDispositionToStr()
11465 void ScalarEvolution::print(raw_ostream &OS) const { in print()
11472 ScalarEvolution &SE = *const_cast<ScalarEvolution *>(this); in print()
11553 ScalarEvolution::LoopDisposition
11554 ScalarEvolution::getLoopDisposition(const SCEV *S, const Loop *L) { in getLoopDisposition()
11572 ScalarEvolution::LoopDisposition
11573 ScalarEvolution::computeLoopDisposition(const SCEV *S, const Loop *L) { in computeLoopDisposition()
11650 bool ScalarEvolution::isLoopInvariant(const SCEV *S, const Loop *L) { in isLoopInvariant()
11654 bool ScalarEvolution::hasComputableLoopEvolution(const SCEV *S, const Loop *L) { in hasComputableLoopEvolution()
11658 ScalarEvolution::BlockDisposition
11659 ScalarEvolution::getBlockDisposition(const SCEV *S, const BasicBlock *BB) { in getBlockDisposition()
11677 ScalarEvolution::BlockDisposition
11678 ScalarEvolution::computeBlockDisposition(const SCEV *S, const BasicBlock *BB) { in computeBlockDisposition()
11741 bool ScalarEvolution::dominates(const SCEV *S, const BasicBlock *BB) { in dominates()
11745 bool ScalarEvolution::properlyDominates(const SCEV *S, const BasicBlock *BB) { in properlyDominates()
11749 bool ScalarEvolution::hasOperand(const SCEV *S, const SCEV *Op) const { in hasOperand()
11753 bool ScalarEvolution::ExitLimit::hasOperand(const SCEV *S) const { in hasOperand()
11762 ScalarEvolution::forgetMemoizedResults(const SCEV *S) { in forgetMemoizedResults()
11798 ScalarEvolution::getUsedLoops(const SCEV *S, in getUsedLoops()
11817 void ScalarEvolution::addToLoopUseLists(const SCEV *S) { in addToLoopUseLists()
11824 void ScalarEvolution::verify() const { in verify()
11825 ScalarEvolution &SE = *const_cast<ScalarEvolution *>(this); in verify()
11826 ScalarEvolution SE2(F, TLI, AC, DT, LI); in verify()
11832 SCEVMapper(ScalarEvolution &SE) : SCEVRewriteVisitor<SCEVMapper>(SE) {} in verify()
11854 const_cast<ScalarEvolution *>(this)->getBackedgeTakenCount(L)); in verify()
11897 bool ScalarEvolution::invalidate( in invalidate()
11911 ScalarEvolution ScalarEvolutionAnalysis::run(Function &F, in run()
11913 return ScalarEvolution(F, AM.getResult<TargetLibraryAnalysis>(F), in run()
11941 SE.reset(new ScalarEvolution( in runOnFunction()
11970 const SCEVPredicate *ScalarEvolution::getEqualPredicate(const SCEV *LHS, in getEqualPredicate()
11988 const SCEVPredicate *ScalarEvolution::getWrapPredicate( in getWrapPredicate()
12018 static const SCEV *rewrite(const SCEV *S, const Loop *L, ScalarEvolution &SE, in rewrite()
12069 explicit SCEVPredicateRewriter(const Loop *L, ScalarEvolution &SE, in SCEVPredicateRewriter()
12122 const SCEV *ScalarEvolution::rewriteUsingPredicate(const SCEV *S, const Loop *L, in rewriteUsingPredicate()
12127 const SCEVAddRecExpr *ScalarEvolution::convertSCEVToAddRecWithPredicates( in convertSCEVToAddRecWithPredicates()
12191 if (ScalarEvolution::setFlags(ScevFlags, SCEV::FlagNSW) == ScevFlags) in isAlwaysTrue()
12208 ScalarEvolution &SE) { in getImpliedFlags()
12213 if (ScalarEvolution::setFlags(StaticFlags, SCEV::FlagNSW) == StaticFlags) in getImpliedFlags()
12216 if (ScalarEvolution::setFlags(StaticFlags, SCEV::FlagNUW) == StaticFlags) { in getImpliedFlags()
12283 PredicatedScalarEvolution::PredicatedScalarEvolution(ScalarEvolution &SE, in PredicatedScalarEvolution()
12419 bool ScalarEvolution::matchURem(const SCEV *Expr, const SCEV *&LHS, in matchURem()