• Home
  • Raw
  • Download

Lines Matching refs:ScalarEvolution

307 const SCEV *ScalarEvolution::getConstant(ConstantInt *V) {  in getConstant()
318 const SCEV *ScalarEvolution::getConstant(const APInt &Val) { in getConstant()
323 ScalarEvolution::getConstant(Type *Ty, uint64_t V, bool isSigned) { in getConstant()
697 static void divide(ScalarEvolution &SE, const SCEV *Numerator, in divide()
896 SCEVDivision(ScalarEvolution &S, const SCEV *Numerator, in SCEVDivision()
915 ScalarEvolution &SE;
928 ScalarEvolution &SE, in BinomialCoefficient()
1047 ScalarEvolution &SE) const { in evaluateAtIteration()
1066 const SCEV *ScalarEvolution::getTruncateExpr(const SCEV *Op, in getTruncateExpr()
1152 ScalarEvolution *SE) { in getSignedOverflowLimitForStep()
1172 ScalarEvolution *SE) { in getUnsignedOverflowLimitForStep()
1183 typedef const SCEV *(ScalarEvolution::*GetExtendExprTy)(const SCEV *, Type *);
1207 ScalarEvolution *SE) { in getOverflowLimitForStep()
1213 SCEVSignExtendExpr>::GetExtendExpr = &ScalarEvolution::getSignExtendExpr;
1223 ScalarEvolution *SE) { in getOverflowLimitForStep()
1229 SCEVZeroExtendExpr>::GetExtendExpr = &ScalarEvolution::getZeroExtendExpr;
1241 ScalarEvolution *SE) { in getPreStartForExtend()
1270 ScalarEvolution::maskFlags(SA->getNoWrapFlags(), SCEV::FlagNUW); in getPreStartForExtend()
1315 ScalarEvolution *SE) { in getExtendAddRecStart()
1360 bool ScalarEvolution::proveNoWrapByVaryingStart(const SCEV *Start, in proveNoWrapByVaryingStart()
1403 const SCEV *ScalarEvolution::getZeroExtendExpr(const SCEV *Op, in getZeroExtendExpr()
1581 const SCEV *ScalarEvolution::getSignExtendExpr(const SCEV *Op, in getSignExtendExpr()
1792 const SCEV *ScalarEvolution::getAnyExtendExpr(const SCEV *Op, in getAnyExtendExpr()
1870 ScalarEvolution &SE) { in CollectAddOperandsWithScales()
1934 StrengthenNoWrapFlags(ScalarEvolution *SE, SCEVTypes Type, in StrengthenNoWrapFlags()
1947 ScalarEvolution::maskFlags(Flags, SignOrUnsignMask); in StrengthenNoWrapFlags()
1956 ScalarEvolution::setFlags(Flags, (SCEV::NoWrapFlags)SignOrUnsignMask); in StrengthenNoWrapFlags()
1958 SignOrUnsignWrap = ScalarEvolution::maskFlags(Flags, SignOrUnsignMask); in StrengthenNoWrapFlags()
1971 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNSW); in StrengthenNoWrapFlags()
1978 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNUW); in StrengthenNoWrapFlags()
1987 const SCEV *ScalarEvolution::getAddExpr(SmallVectorImpl<const SCEV *> &Ops, in getAddExpr()
2396 const SCEV *ScalarEvolution::getMulExpr(SmallVectorImpl<const SCEV *> &Ops, in getMulExpr()
2637 const SCEV *ScalarEvolution::getUDivExpr(const SCEV *LHS, in getUDivExpr()
2771 const SCEV *ScalarEvolution::getUDivExactExpr(const SCEV *LHS, in getUDivExactExpr()
2826 const SCEV *ScalarEvolution::getAddRecExpr(const SCEV *Start, const SCEV *Step, in getAddRecExpr()
2844 ScalarEvolution::getAddRecExpr(SmallVectorImpl<const SCEV *> &Operands, in getAddRecExpr()
2936 ScalarEvolution::getGEPExpr(Type *PointeeType, const SCEV *BaseExpr, in getGEPExpr()
2986 const SCEV *ScalarEvolution::getSMaxExpr(const SCEV *LHS, in getSMaxExpr()
2995 ScalarEvolution::getSMaxExpr(SmallVectorImpl<const SCEV *> &Ops) { in getSMaxExpr()
3089 const SCEV *ScalarEvolution::getUMaxExpr(const SCEV *LHS, in getUMaxExpr()
3098 ScalarEvolution::getUMaxExpr(SmallVectorImpl<const SCEV *> &Ops) { in getUMaxExpr()
3192 const SCEV *ScalarEvolution::getSMinExpr(const SCEV *LHS, in getSMinExpr()
3198 const SCEV *ScalarEvolution::getUMinExpr(const SCEV *LHS, in getUMinExpr()
3204 const SCEV *ScalarEvolution::getSizeOfExpr(Type *IntTy, Type *AllocTy) { in getSizeOfExpr()
3211 const SCEV *ScalarEvolution::getOffsetOfExpr(Type *IntTy, in getOffsetOfExpr()
3221 const SCEV *ScalarEvolution::getUnknown(Value *V) { in getUnknown()
3251 bool ScalarEvolution::isSCEVable(Type *Ty) const { in isSCEVable()
3258 uint64_t ScalarEvolution::getTypeSizeInBits(Type *Ty) const { in getTypeSizeInBits()
3267 Type *ScalarEvolution::getEffectiveSCEVType(Type *Ty) const { in getEffectiveSCEVType()
3278 const SCEV *ScalarEvolution::getCouldNotCompute() { in getCouldNotCompute()
3283 bool ScalarEvolution::checkValidity(const SCEV *S) const { in checkValidity()
3315 const SCEV *ScalarEvolution::getSCEV(Value *V) { in getSCEV()
3326 const SCEV *ScalarEvolution::getExistingSCEV(Value *V) { in getExistingSCEV()
3341 const SCEV *ScalarEvolution::getNegativeSCEV(const SCEV *V, in getNegativeSCEV()
3354 const SCEV *ScalarEvolution::getNotSCEV(const SCEV *V) { in getNotSCEV()
3367 const SCEV *ScalarEvolution::getMinusSCEV(const SCEV *LHS, const SCEV *RHS, in getMinusSCEV()
3409 ScalarEvolution::getTruncateOrZeroExtend(const SCEV *V, Type *Ty) { in getTruncateOrZeroExtend()
3425 ScalarEvolution::getTruncateOrSignExtend(const SCEV *V, in getTruncateOrSignExtend()
3442 ScalarEvolution::getNoopOrZeroExtend(const SCEV *V, Type *Ty) { in getNoopOrZeroExtend()
3458 ScalarEvolution::getNoopOrSignExtend(const SCEV *V, Type *Ty) { in getNoopOrSignExtend()
3475 ScalarEvolution::getNoopOrAnyExtend(const SCEV *V, Type *Ty) { in getNoopOrAnyExtend()
3490 ScalarEvolution::getTruncateOrNoop(const SCEV *V, Type *Ty) { in getTruncateOrNoop()
3505 const SCEV *ScalarEvolution::getUMaxFromMismatchedTypes(const SCEV *LHS, in getUMaxFromMismatchedTypes()
3521 const SCEV *ScalarEvolution::getUMinFromMismatchedTypes(const SCEV *LHS, in getUMinFromMismatchedTypes()
3538 const SCEV *ScalarEvolution::getPointerBase(const SCEV *V) { in getPointerBase()
3577 ScalarEvolution::ForgetSymbolicName(Instruction *PN, const SCEV *SymName) { in ForgetSymbolicName()
3620 ScalarEvolution &SE) { in rewrite()
3626 SCEVInitRewriter(const Loop *L, ScalarEvolution &SE) in SCEVInitRewriter()
3630 if (!(SE.getLoopDisposition(Expr, L) == ScalarEvolution::LoopInvariant)) in visitUnknown()
3653 ScalarEvolution &SE) { in rewrite()
3659 SCEVShiftRewriter(const Loop *L, ScalarEvolution &SE) in SCEVShiftRewriter()
3664 if (!(SE.getLoopDisposition(Expr, L) == ScalarEvolution::LoopInvariant)) in visitUnknown()
3683 const SCEV *ScalarEvolution::createAddRecFromPHI(PHINode *PN) { in createAddRecFromPHI()
3931 const SCEV *ScalarEvolution::createNodeFromSelectLikePHI(PHINode *PN) { in createNodeFromSelectLikePHI()
3968 const SCEV *ScalarEvolution::createNodeForPHI(PHINode *PN) { in createNodeForPHI()
3987 const SCEV *ScalarEvolution::createNodeForSelectOrPHI(Instruction *I, in createNodeForSelectOrPHI()
4089 const SCEV *ScalarEvolution::createNodeForGEP(GEPOperator *GEP) { in createNodeForGEP()
4107 ScalarEvolution::GetMinTrailingZeros(const SCEV *S) { in GetMinTrailingZeros()
4198 ScalarEvolution::getRange(const SCEV *S, in getRange()
4199 ScalarEvolution::RangeSignHint SignHint) { in getRange()
4201 SignHint == ScalarEvolution::HINT_RANGE_UNSIGNED ? UnsignedRanges in getRange()
4219 if (SignHint == ScalarEvolution::HINT_RANGE_UNSIGNED) in getRange()
4388 if (SignHint == ScalarEvolution::HINT_RANGE_UNSIGNED) { in getRange()
4396 assert(SignHint == ScalarEvolution::HINT_RANGE_SIGNED && in getRange()
4411 SCEV::NoWrapFlags ScalarEvolution::getNoWrapFlagsFromUB(const Value *V) { in getNoWrapFlagsFromUB()
4418 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNUW); in getNoWrapFlagsFromUB()
4420 Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNSW); in getNoWrapFlagsFromUB()
4470 const SCEV *ScalarEvolution::createSCEV(Value *V) { in createSCEV()
4803 unsigned ScalarEvolution::getSmallConstantTripCount(Loop *L) { in getSmallConstantTripCount()
4821 unsigned ScalarEvolution::getSmallConstantTripCount(Loop *L, in getSmallConstantTripCount()
4841 unsigned ScalarEvolution::getSmallConstantTripMultiple(Loop *L) { in getSmallConstantTripMultiple()
4862 ScalarEvolution::getSmallConstantTripMultiple(Loop *L, in getSmallConstantTripMultiple()
4897 const SCEV *ScalarEvolution::getExitCount(Loop *L, BasicBlock *ExitingBlock) { in getExitCount()
4912 const SCEV *ScalarEvolution::getBackedgeTakenCount(const Loop *L) { in getBackedgeTakenCount()
4919 const SCEV *ScalarEvolution::getMaxBackedgeTakenCount(const Loop *L) { in getMaxBackedgeTakenCount()
4935 const ScalarEvolution::BackedgeTakenInfo &
4936 ScalarEvolution::getBackedgeTakenInfo(const Loop *L) { in getBackedgeTakenInfo()
5013 void ScalarEvolution::forgetLoop(const Loop *L) { in forgetLoop()
5053 void ScalarEvolution::forgetValue(Value *V) { in forgetValue()
5089 ScalarEvolution::BackedgeTakenInfo::getExact(ScalarEvolution *SE) const { in getExact()
5114 ScalarEvolution::BackedgeTakenInfo::getExact(BasicBlock *ExitingBlock, in getExact()
5115 ScalarEvolution *SE) const { in getExact()
5127 ScalarEvolution::BackedgeTakenInfo::getMax(ScalarEvolution *SE) const { in getMax()
5131 bool ScalarEvolution::BackedgeTakenInfo::hasOperand(const SCEV *S, in hasOperand()
5132 ScalarEvolution *SE) const { in hasOperand()
5152 ScalarEvolution::BackedgeTakenInfo::BackedgeTakenInfo( in BackedgeTakenInfo()
5178 void ScalarEvolution::BackedgeTakenInfo::clear() { in clear()
5186 ScalarEvolution::BackedgeTakenInfo
5187 ScalarEvolution::computeBackedgeTakenCount(const Loop *L) { in computeBackedgeTakenCount()
5243 ScalarEvolution::ExitLimit
5244 ScalarEvolution::computeExitLimit(const Loop *L, BasicBlock *ExitingBlock) { in computeExitLimit()
5330 ScalarEvolution::ExitLimit
5331 ScalarEvolution::computeExitLimitFromCond(const Loop *L, in computeExitLimitFromCond()
5432 ScalarEvolution::ExitLimit
5433 ScalarEvolution::computeExitLimitFromICmp(const Loop *L, in computeExitLimitFromICmp()
5524 ScalarEvolution::ExitLimit
5525 ScalarEvolution::computeExitLimitFromSingleExitSwitch(const Loop *L, in computeExitLimitFromSingleExitSwitch()
5550 ScalarEvolution &SE) { in EvaluateConstantChrecAtConstant()
5561 ScalarEvolution::ExitLimit
5562 ScalarEvolution::computeLoadConstantCompareExitLimit( in computeLoadConstantCompareExitLimit()
5638 ScalarEvolution::ExitLimit ScalarEvolution::computeShiftCompareExitLimit( in computeShiftCompareExitLimit()
5946 ScalarEvolution::getConstantEvolutionLoopExitValue(PHINode *PN, in getConstantEvolutionLoopExitValue()
6031 const SCEV *ScalarEvolution::computeExitCountExhaustively(const Loop *L, in computeExitCountExhaustively()
6112 const SCEV *ScalarEvolution::getSCEVAtScope(const SCEV *V, const Loop *L) { in getSCEVAtScope()
6231 const SCEV *ScalarEvolution::computeSCEVAtScope(const SCEV *V, const Loop *L) { in computeSCEVAtScope()
6425 const SCEV *ScalarEvolution::getSCEVAtScope(Value *V, const Loop *L) { in getSCEVAtScope()
6439 ScalarEvolution &SE) { in SolveLinEquationWithOverflow()
6482 SolveQuadraticEquation(const SCEVAddRecExpr *AddRec, ScalarEvolution &SE) { in SolveQuadraticEquation()
6555 ScalarEvolution::ExitLimit
6556 ScalarEvolution::HowFarToZero(const SCEV *V, const Loop *L, bool ControlsExit) { in HowFarToZero()
6724 ScalarEvolution::ExitLimit
6725 ScalarEvolution::HowFarToNonZero(const SCEV *V, const Loop *L) { in HowFarToNonZero()
6749 ScalarEvolution::getPredecessorWithUniqueSuccessorForBB(BasicBlock *BB) { in getPredecessorWithUniqueSuccessorForBB()
6798 bool ScalarEvolution::SimplifyICmpOperands(ICmpInst::Predicate &Pred, in SimplifyICmpOperands()
7073 bool ScalarEvolution::isKnownNegative(const SCEV *S) { in isKnownNegative()
7077 bool ScalarEvolution::isKnownPositive(const SCEV *S) { in isKnownPositive()
7081 bool ScalarEvolution::isKnownNonNegative(const SCEV *S) { in isKnownNonNegative()
7085 bool ScalarEvolution::isKnownNonPositive(const SCEV *S) { in isKnownNonPositive()
7089 bool ScalarEvolution::isKnownNonZero(const SCEV *S) { in isKnownNonZero()
7093 bool ScalarEvolution::isKnownPredicate(ICmpInst::Predicate Pred, in isKnownPredicate()
7132 bool ScalarEvolution::isMonotonicPredicate(const SCEVAddRecExpr *LHS, in isMonotonicPredicate()
7153 bool ScalarEvolution::isMonotonicPredicateImpl(const SCEVAddRecExpr *LHS, in isMonotonicPredicateImpl()
7208 bool ScalarEvolution::isLoopInvariantPredicate( in isLoopInvariantPredicate()
7260 ScalarEvolution::isKnownPredicateWithRanges(ICmpInst::Predicate Pred, in isKnownPredicateWithRanges()
7333 bool ScalarEvolution::isKnownPredicateViaNoOverflow(ICmpInst::Predicate Pred, in isKnownPredicateViaNoOverflow()
7389 bool ScalarEvolution::isKnownPredicateViaSplitting(ICmpInst::Predicate Pred, in isKnownPredicateViaSplitting()
7415 ScalarEvolution::isLoopBackedgeGuardedByCond(const Loop *L, in isLoopBackedgeGuardedByCond()
7517 ScalarEvolution::isLoopEntryGuardedByCond(const Loop *L, in isLoopEntryGuardedByCond()
7583 bool ScalarEvolution::isImpliedCond(ICmpInst::Predicate Pred, in isImpliedCond()
7621 bool ScalarEvolution::isImpliedCond(ICmpInst::Predicate Pred, const SCEV *LHS, in isImpliedCond()
7762 bool ScalarEvolution::splitBinaryAdd(const SCEV *Expr, in splitBinaryAdd()
7775 bool ScalarEvolution::computeConstantDifference(const SCEV *Less, in computeConstantDifference()
7828 bool ScalarEvolution::isImpliedCondOperandsViaNoOverflow( in isImpliedCondOperandsViaNoOverflow()
7908 bool ScalarEvolution::isImpliedCondOperands(ICmpInst::Predicate Pred, in isImpliedCondOperands()
7956 static bool IsMinConsistingOf(ScalarEvolution &SE, in IsMinConsistingOf()
7966 static bool IsKnownPredicateViaAddRecStart(ScalarEvolution &SE, in IsKnownPredicateViaAddRecStart()
8001 static bool IsKnownPredicateViaMinOrMax(ScalarEvolution &SE, in IsKnownPredicateViaMinOrMax()
8036 ScalarEvolution::isImpliedCondOperandsHelper(ICmpInst::Predicate Pred, in isImpliedCondOperandsHelper()
8086 bool ScalarEvolution::isImpliedCondOperandsViaRanges(ICmpInst::Predicate Pred, in isImpliedCondOperandsViaRanges()
8127 bool ScalarEvolution::doesIVOverflowOnLT(const SCEV *RHS, const SCEV *Stride, in doesIVOverflowOnLT()
8156 bool ScalarEvolution::doesIVOverflowOnGT(const SCEV *RHS, const SCEV *Stride, in doesIVOverflowOnGT()
8184 const SCEV *ScalarEvolution::computeBECount(const SCEV *Delta, const SCEV *Step, in computeBECount()
8199 ScalarEvolution::ExitLimit
8200 ScalarEvolution::HowManyLessThans(const SCEV *LHS, const SCEV *RHS, in HowManyLessThans()
8279 ScalarEvolution::ExitLimit
8280 ScalarEvolution::HowManyGreaterThans(const SCEV *LHS, const SCEV *RHS, in HowManyGreaterThans()
8367 ScalarEvolution &SE) const { in getNumIterationsInRange()
8519 ScalarEvolution &SE;
8522 SCEVCollectStrides(ScalarEvolution &SE, SmallVectorImpl<const SCEV *> &S) in SCEVCollectStrides()
8591 ScalarEvolution &SE;
8593 SCEVCollectAddRecMultiplies(SmallVectorImpl<const SCEV *> &T, ScalarEvolution &SE) in SCEVCollectAddRecMultiplies()
8632 void ScalarEvolution::collectParametricTerms(const SCEV *Expr, in collectParametricTerms()
8659 static bool findArrayDimensionsRec(ScalarEvolution &SE, in findArrayDimensionsRec()
8751 static const SCEV *removeConstantFactors(ScalarEvolution &SE, const SCEV *T) { in removeConstantFactors()
8771 const SCEV *ScalarEvolution::getElementSize(Instruction *Inst) { in getElementSize()
8786 void ScalarEvolution::findArrayDimensions(SmallVectorImpl<const SCEV *> &Terms, in findArrayDimensions()
8813 ScalarEvolution &SE = *const_cast<ScalarEvolution *>(this); in findArrayDimensions()
8855 void ScalarEvolution::computeAccessFunctions( in computeAccessFunctions()
8963 void ScalarEvolution::delinearize(const SCEV *Expr, in delinearize()
9003 void ScalarEvolution::SCEVCallbackVH::deleted() { in deleted()
9011 void ScalarEvolution::SCEVCallbackVH::allUsesReplacedWith(Value *V) { in allUsesReplacedWith()
9040 ScalarEvolution::SCEVCallbackVH::SCEVCallbackVH(Value *V, ScalarEvolution *se) in SCEVCallbackVH()
9047 ScalarEvolution::ScalarEvolution(Function &F, TargetLibraryInfo &TLI, in ScalarEvolution() function in ScalarEvolution
9056 ScalarEvolution::ScalarEvolution(ScalarEvolution &&Arg) in ScalarEvolution() function in ScalarEvolution
9076 ScalarEvolution::~ScalarEvolution() { in ~ScalarEvolution()
9098 bool ScalarEvolution::hasLoopInvariantBackedgeTakenCount(const Loop *L) { in hasLoopInvariantBackedgeTakenCount()
9102 static void PrintLoopInfo(raw_ostream &OS, ScalarEvolution *SE, in PrintLoopInfo()
9137 void ScalarEvolution::print(raw_ostream &OS) const { in print()
9144 ScalarEvolution &SE = *const_cast<ScalarEvolution *>(this); in print()
9196 ScalarEvolution::LoopDisposition
9197 ScalarEvolution::getLoopDisposition(const SCEV *S, const Loop *L) { in getLoopDisposition()
9215 ScalarEvolution::LoopDisposition
9216 ScalarEvolution::computeLoopDisposition(const SCEV *S, const Loop *L) { in computeLoopDisposition()
9291 bool ScalarEvolution::isLoopInvariant(const SCEV *S, const Loop *L) { in isLoopInvariant()
9295 bool ScalarEvolution::hasComputableLoopEvolution(const SCEV *S, const Loop *L) { in hasComputableLoopEvolution()
9299 ScalarEvolution::BlockDisposition
9300 ScalarEvolution::getBlockDisposition(const SCEV *S, const BasicBlock *BB) { in getBlockDisposition()
9318 ScalarEvolution::BlockDisposition
9319 ScalarEvolution::computeBlockDisposition(const SCEV *S, const BasicBlock *BB) { in computeBlockDisposition()
9380 bool ScalarEvolution::dominates(const SCEV *S, const BasicBlock *BB) { in dominates()
9384 bool ScalarEvolution::properlyDominates(const SCEV *S, const BasicBlock *BB) { in properlyDominates()
9388 bool ScalarEvolution::hasOperand(const SCEV *S, const SCEV *Op) const { in hasOperand()
9409 void ScalarEvolution::forgetMemoizedResults(const SCEV *S) { in forgetMemoizedResults()
9441 getLoopBackedgeTakenCounts(Loop *L, VerifyMap &Map, ScalarEvolution &SE) { in getLoopBackedgeTakenCounts()
9461 void ScalarEvolution::verify() const { in verify()
9462 ScalarEvolution &SE = *const_cast<ScalarEvolution *>(this); in verify()
9473 ScalarEvolution SE2(F, TLI, AC, DT, LI); in verify()
9511 ScalarEvolution ScalarEvolutionAnalysis::run(Function &F, in run()
9513 return ScalarEvolution(F, AM->getResult<TargetLibraryAnalysis>(F), in run()
9540 SE.reset(new ScalarEvolution( in runOnFunction()
9570 ScalarEvolution::getEqualPredicate(const SCEVUnknown *LHS, in getEqualPredicate()
9589 static const SCEV *rewrite(const SCEV *Scev, ScalarEvolution &SE, in rewrite()
9595 SCEVPredicateRewriter(ScalarEvolution &SE, SCEVUnionPredicate &P) in SCEVPredicateRewriter()
9613 const SCEV *ScalarEvolution::rewriteUsingPredicate(const SCEV *Scev, in rewriteUsingPredicate()
9701 PredicatedScalarEvolution::PredicatedScalarEvolution(ScalarEvolution &SE) in PredicatedScalarEvolution()