LLVM 20.0.0git
llvm::ScalarEvolution Member List

This is the complete list of members for llvm::ScalarEvolution, including all inherited members.

applyLoopGuards(const SCEV *Expr, const Loop *L)llvm::ScalarEvolution
applyLoopGuards(const SCEV *Expr, const LoopGuards &Guards)llvm::ScalarEvolution
BlockDisposition enum namellvm::ScalarEvolution
canReuseInstruction(const SCEV *S, Instruction *I, SmallVectorImpl< Instruction * > &DropPoisonGeneratingInsts)llvm::ScalarEvolution
clearFlags(SCEV::NoWrapFlags Flags, SCEV::NoWrapFlags OffFlags)llvm::ScalarEvolutioninlinestatic
computeConstantDifference(const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
computeExitLimitFromCond(const Loop *L, Value *ExitCond, bool ExitIfTrue, bool ControlsOnlyExit, bool AllowPredicates=false)llvm::ScalarEvolution
ConstantMaximum enum valuellvm::ScalarEvolution
containsAddRecurrence(const SCEV *S)llvm::ScalarEvolution
containsErasedValue(const SCEV *S) constllvm::ScalarEvolution
containsUndefs(const SCEV *S) constllvm::ScalarEvolution
convertSCEVToAddRecWithPredicates(const SCEV *S, const Loop *L, SmallVectorImpl< const SCEVPredicate * > &Preds)llvm::ScalarEvolution
createAddRecFromPHIWithCasts(const SCEVUnknown *SymbolicPHI)llvm::ScalarEvolution
DoesNotDominateBlock enum valuellvm::ScalarEvolution
dominates(const SCEV *S, const BasicBlock *BB)llvm::ScalarEvolution
DominatesBlock enum valuellvm::ScalarEvolution
evaluatePredicate(ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
evaluatePredicateAt(ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS, const Instruction *CtxI)llvm::ScalarEvolution
Exact enum valuellvm::ScalarEvolution
ExitCountKind enum namellvm::ScalarEvolution
forgetAllLoops()llvm::ScalarEvolution
forgetBlockAndLoopDispositions(Value *V=nullptr)llvm::ScalarEvolution
forgetLcssaPhiWithNewPredecessor(Loop *L, PHINode *V)llvm::ScalarEvolution
forgetLoop(const Loop *L)llvm::ScalarEvolution
forgetLoopDispositions()llvm::ScalarEvolution
forgetTopmostLoop(const Loop *L)llvm::ScalarEvolution
forgetValue(Value *V)llvm::ScalarEvolution
getAbsExpr(const SCEV *Op, bool IsNSW)llvm::ScalarEvolution
getAddExpr(SmallVectorImpl< const SCEV * > &Ops, SCEV::NoWrapFlags Flags=SCEV::FlagAnyWrap, unsigned Depth=0)llvm::ScalarEvolution
getAddExpr(const SCEV *LHS, const SCEV *RHS, SCEV::NoWrapFlags Flags=SCEV::FlagAnyWrap, unsigned Depth=0)llvm::ScalarEvolutioninline
getAddExpr(const SCEV *Op0, const SCEV *Op1, const SCEV *Op2, SCEV::NoWrapFlags Flags=SCEV::FlagAnyWrap, unsigned Depth=0)llvm::ScalarEvolutioninline
getAddRecExpr(const SCEV *Start, const SCEV *Step, const Loop *L, SCEV::NoWrapFlags Flags)llvm::ScalarEvolution
getAddRecExpr(SmallVectorImpl< const SCEV * > &Operands, const Loop *L, SCEV::NoWrapFlags Flags)llvm::ScalarEvolution
getAddRecExpr(const SmallVectorImpl< const SCEV * > &Operands, const Loop *L, SCEV::NoWrapFlags Flags)llvm::ScalarEvolutioninline
getAnyExtendExpr(const SCEV *Op, Type *Ty)llvm::ScalarEvolution
getBackedgeTakenCount(const Loop *L, ExitCountKind Kind=Exact)llvm::ScalarEvolution
getBlockDisposition(const SCEV *S, const BasicBlock *BB)llvm::ScalarEvolution
getCastExpr(SCEVTypes Kind, const SCEV *Op, Type *Ty)llvm::ScalarEvolution
getComparePredicate(ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
getConstant(ConstantInt *V)llvm::ScalarEvolution
getConstant(const APInt &Val)llvm::ScalarEvolution
getConstant(Type *Ty, uint64_t V, bool isSigned=false)llvm::ScalarEvolution
getConstantMaxBackedgeTakenCount(const Loop *L)llvm::ScalarEvolutioninline
getConstantMultiple(const SCEV *S)llvm::ScalarEvolution
getContext() constllvm::ScalarEvolutioninline
getCouldNotCompute()llvm::ScalarEvolution
getDataLayout() constllvm::ScalarEvolutioninline
getEffectiveSCEVType(Type *Ty) constllvm::ScalarEvolution
getElementCount(Type *Ty, ElementCount EC)llvm::ScalarEvolution
getElementSize(Instruction *Inst)llvm::ScalarEvolution
getEqualPredicate(const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
getExistingSCEV(Value *V)llvm::ScalarEvolution
getExitCount(const Loop *L, const BasicBlock *ExitingBlock, ExitCountKind Kind=Exact)llvm::ScalarEvolution
getGEPExpr(GEPOperator *GEP, const SmallVectorImpl< const SCEV * > &IndexExprs)llvm::ScalarEvolution
getLoopDisposition(const SCEV *S, const Loop *L)llvm::ScalarEvolution
getLoopInvariantExitCondDuringFirstIterations(ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS, const Loop *L, const Instruction *CtxI, const SCEV *MaxIter)llvm::ScalarEvolution
getLoopInvariantExitCondDuringFirstIterationsImpl(ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS, const Loop *L, const Instruction *CtxI, const SCEV *MaxIter)llvm::ScalarEvolution
getLoopInvariantPredicate(ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS, const Loop *L, const Instruction *CtxI=nullptr)llvm::ScalarEvolution
getLosslessPtrToIntExpr(const SCEV *Op, unsigned Depth=0)llvm::ScalarEvolution
getMinMaxExpr(SCEVTypes Kind, SmallVectorImpl< const SCEV * > &Operands)llvm::ScalarEvolution
getMinTrailingZeros(const SCEV *S)llvm::ScalarEvolution
getMinusOne(Type *Ty)llvm::ScalarEvolutioninline
getMinusSCEV(const SCEV *LHS, const SCEV *RHS, SCEV::NoWrapFlags Flags=SCEV::FlagAnyWrap, unsigned Depth=0)llvm::ScalarEvolution
getMonotonicPredicateType(const SCEVAddRecExpr *LHS, ICmpInst::Predicate Pred)llvm::ScalarEvolution
getMulExpr(SmallVectorImpl< const SCEV * > &Ops, SCEV::NoWrapFlags Flags=SCEV::FlagAnyWrap, unsigned Depth=0)llvm::ScalarEvolution
getMulExpr(const SCEV *LHS, const SCEV *RHS, SCEV::NoWrapFlags Flags=SCEV::FlagAnyWrap, unsigned Depth=0)llvm::ScalarEvolutioninline
getMulExpr(const SCEV *Op0, const SCEV *Op1, const SCEV *Op2, SCEV::NoWrapFlags Flags=SCEV::FlagAnyWrap, unsigned Depth=0)llvm::ScalarEvolutioninline
getNegativeSCEV(const SCEV *V, SCEV::NoWrapFlags Flags=SCEV::FlagAnyWrap)llvm::ScalarEvolution
getNonZeroConstantMultiple(const SCEV *S)llvm::ScalarEvolution
getNoopOrAnyExtend(const SCEV *V, Type *Ty)llvm::ScalarEvolution
getNoopOrSignExtend(const SCEV *V, Type *Ty)llvm::ScalarEvolution
getNoopOrZeroExtend(const SCEV *V, Type *Ty)llvm::ScalarEvolution
getNotSCEV(const SCEV *V)llvm::ScalarEvolution
getOffsetOfExpr(Type *IntTy, StructType *STy, unsigned FieldNo)llvm::ScalarEvolution
getOne(Type *Ty)llvm::ScalarEvolutioninline
getPointerBase(const SCEV *V)llvm::ScalarEvolution
getPoisonGeneratingValues(SmallPtrSetImpl< const Value * > &Result, const SCEV *S)llvm::ScalarEvolution
getPowerOfTwo(Type *Ty, unsigned Power)llvm::ScalarEvolutioninline
getPredicatedBackedgeTakenCount(const Loop *L, SmallVectorImpl< const SCEVPredicate * > &Predicates)llvm::ScalarEvolution
getPredicatedConstantMaxBackedgeTakenCount(const Loop *L, SmallVectorImpl< const SCEVPredicate * > &Predicates)llvm::ScalarEvolution
getPredicatedExitCount(const Loop *L, const BasicBlock *ExitingBlock, SmallVectorImpl< const SCEVPredicate * > *Predicates, ExitCountKind Kind=Exact)llvm::ScalarEvolution
getPredicatedSymbolicMaxBackedgeTakenCount(const Loop *L, SmallVectorImpl< const SCEVPredicate * > &Predicates)llvm::ScalarEvolution
getPtrToIntExpr(const SCEV *Op, Type *Ty)llvm::ScalarEvolution
getSCEV(Value *V)llvm::ScalarEvolution
getSCEVAtScope(const SCEV *S, const Loop *L)llvm::ScalarEvolution
getSCEVAtScope(Value *V, const Loop *L)llvm::ScalarEvolution
getSequentialMinMaxExpr(SCEVTypes Kind, SmallVectorImpl< const SCEV * > &Operands)llvm::ScalarEvolution
getSignedRange(const SCEV *S)llvm::ScalarEvolutioninline
getSignedRangeMax(const SCEV *S)llvm::ScalarEvolutioninline
getSignedRangeMin(const SCEV *S)llvm::ScalarEvolutioninline
getSignExtendExpr(const SCEV *Op, Type *Ty, unsigned Depth=0)llvm::ScalarEvolution
getSignExtendExprImpl(const SCEV *Op, Type *Ty, unsigned Depth=0)llvm::ScalarEvolution
getSizeOfExpr(Type *IntTy, TypeSize Size)llvm::ScalarEvolution
getSizeOfExpr(Type *IntTy, Type *AllocTy)llvm::ScalarEvolution
getSmallConstantMaxTripCount(const Loop *L, SmallVectorImpl< const SCEVPredicate * > *Predicates=nullptr)llvm::ScalarEvolution
getSmallConstantTripCount(const Loop *L)llvm::ScalarEvolution
getSmallConstantTripCount(const Loop *L, const BasicBlock *ExitingBlock)llvm::ScalarEvolution
getSmallConstantTripMultiple(const Loop *L, const SCEV *ExitCount)llvm::ScalarEvolution
getSmallConstantTripMultiple(const Loop *L)llvm::ScalarEvolution
getSmallConstantTripMultiple(const Loop *L, const BasicBlock *ExitingBlock)llvm::ScalarEvolution
getSMaxExpr(const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
getSMaxExpr(SmallVectorImpl< const SCEV * > &Operands)llvm::ScalarEvolution
getSMinExpr(const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
getSMinExpr(SmallVectorImpl< const SCEV * > &Operands)llvm::ScalarEvolution
getStoreSizeOfExpr(Type *IntTy, Type *StoreTy)llvm::ScalarEvolution
getStrengthenedNoWrapFlagsFromBinOp(const OverflowingBinaryOperator *OBO)llvm::ScalarEvolution
getSymbolicMaxBackedgeTakenCount(const Loop *L)llvm::ScalarEvolutioninline
getTripCountFromExitCount(const SCEV *ExitCount)llvm::ScalarEvolution
getTripCountFromExitCount(const SCEV *ExitCount, Type *EvalTy, const Loop *L)llvm::ScalarEvolution
getTruncateExpr(const SCEV *Op, Type *Ty, unsigned Depth=0)llvm::ScalarEvolution
getTruncateOrNoop(const SCEV *V, Type *Ty)llvm::ScalarEvolution
getTruncateOrSignExtend(const SCEV *V, Type *Ty, unsigned Depth=0)llvm::ScalarEvolution
getTruncateOrZeroExtend(const SCEV *V, Type *Ty, unsigned Depth=0)llvm::ScalarEvolution
getTypeSizeInBits(Type *Ty) constllvm::ScalarEvolution
getUDivCeilSCEV(const SCEV *N, const SCEV *D)llvm::ScalarEvolution
getUDivExactExpr(const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
getUDivExpr(const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
getUMaxExpr(const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
getUMaxExpr(SmallVectorImpl< const SCEV * > &Operands)llvm::ScalarEvolution
getUMaxFromMismatchedTypes(const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
getUMinExpr(const SCEV *LHS, const SCEV *RHS, bool Sequential=false)llvm::ScalarEvolution
getUMinExpr(SmallVectorImpl< const SCEV * > &Operands, bool Sequential=false)llvm::ScalarEvolution
getUMinFromMismatchedTypes(const SCEV *LHS, const SCEV *RHS, bool Sequential=false)llvm::ScalarEvolution
getUMinFromMismatchedTypes(SmallVectorImpl< const SCEV * > &Ops, bool Sequential=false)llvm::ScalarEvolution
getUnknown(Value *V)llvm::ScalarEvolution
getUnsignedRange(const SCEV *S)llvm::ScalarEvolutioninline
getUnsignedRangeMax(const SCEV *S)llvm::ScalarEvolutioninline
getUnsignedRangeMin(const SCEV *S)llvm::ScalarEvolutioninline
getURemExpr(const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
getVScale(Type *Ty)llvm::ScalarEvolution
getWiderType(Type *Ty1, Type *Ty2) constllvm::ScalarEvolution
getWrapPredicate(const SCEVAddRecExpr *AR, SCEVWrapPredicate::IncrementWrapFlags AddedFlags)llvm::ScalarEvolution
getZero(Type *Ty)llvm::ScalarEvolutioninline
getZeroExtendExpr(const SCEV *Op, Type *Ty, unsigned Depth=0)llvm::ScalarEvolution
getZeroExtendExprImpl(const SCEV *Op, Type *Ty, unsigned Depth=0)llvm::ScalarEvolution
hasComputableLoopEvolution(const SCEV *S, const Loop *L)llvm::ScalarEvolution
hasFlags(SCEV::NoWrapFlags Flags, SCEV::NoWrapFlags TestFlags)llvm::ScalarEvolutioninlinestatic
hasLoopInvariantBackedgeTakenCount(const Loop *L)llvm::ScalarEvolution
hasOperand(const SCEV *S, const SCEV *Op) constllvm::ScalarEvolution
instructionCouldExistWithOperands(const SCEV *A, const SCEV *B)llvm::ScalarEvolution
invalidate(Function &F, const PreservedAnalyses &PA, FunctionAnalysisManager::Invalidator &Inv)llvm::ScalarEvolution
isAvailableAtLoopEntry(const SCEV *S, const Loop *L)llvm::ScalarEvolution
isBackedgeTakenCountMaxOrZero(const Loop *L)llvm::ScalarEvolution
isBasicBlockEntryGuardedByCond(const BasicBlock *BB, ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
isKnownNegative(const SCEV *S)llvm::ScalarEvolution
isKnownNonNegative(const SCEV *S)llvm::ScalarEvolution
isKnownNonPositive(const SCEV *S)llvm::ScalarEvolution
isKnownNonZero(const SCEV *S)llvm::ScalarEvolution
isKnownOnEveryIteration(ICmpInst::Predicate Pred, const SCEVAddRecExpr *LHS, const SCEV *RHS)llvm::ScalarEvolution
isKnownPositive(const SCEV *S)llvm::ScalarEvolution
isKnownPredicate(ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
isKnownPredicateAt(ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS, const Instruction *CtxI)llvm::ScalarEvolution
isKnownToBeAPowerOfTwo(const SCEV *S, bool OrZero=false, bool OrNegative=false)llvm::ScalarEvolution
isKnownViaInduction(ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
isLoopBackedgeGuardedByCond(const Loop *L, ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
isLoopEntryGuardedByCond(const Loop *L, ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS)llvm::ScalarEvolution
isLoopInvariant(const SCEV *S, const Loop *L)llvm::ScalarEvolution
isSCEVable(Type *Ty) constllvm::ScalarEvolution
LoopComputable enum valuellvm::ScalarEvolution
LoopDisposition enum namellvm::ScalarEvolution
loopHasNoAbnormalExits(const Loop *L)llvm::ScalarEvolutioninline
LoopInvariant enum valuellvm::ScalarEvolution
loopIsFiniteByAssumption(const Loop *L)llvm::ScalarEvolution
LoopVariant enum valuellvm::ScalarEvolution
maskFlags(SCEV::NoWrapFlags Flags, int Mask)llvm::ScalarEvolutioninlinestatic
MonotonicallyDecreasing enum valuellvm::ScalarEvolution
MonotonicallyIncreasing enum valuellvm::ScalarEvolution
MonotonicPredicateType enum namellvm::ScalarEvolution
print(raw_ostream &OS) constllvm::ScalarEvolution
properlyDominates(const SCEV *S, const BasicBlock *BB)llvm::ScalarEvolution
ProperlyDominatesBlock enum valuellvm::ScalarEvolution
registerUser(const SCEV *User, ArrayRef< const SCEV * > Ops)llvm::ScalarEvolution
removePointerBase(const SCEV *S)llvm::ScalarEvolution
rewriteUsingPredicate(const SCEV *S, const Loop *L, const SCEVPredicate &A)llvm::ScalarEvolution
ScalarEvolution(Function &F, TargetLibraryInfo &TLI, AssumptionCache &AC, DominatorTree &DT, LoopInfo &LI)llvm::ScalarEvolution
ScalarEvolution(ScalarEvolution &&Arg)llvm::ScalarEvolution
ScalarEvolutionsTestllvm::ScalarEvolutionfriend
SCEVCallbackVHllvm::ScalarEvolutionfriend
SCEVExpanderllvm::ScalarEvolutionfriend
SCEVUnknownllvm::ScalarEvolutionfriend
setFlags(SCEV::NoWrapFlags Flags, SCEV::NoWrapFlags OnFlags)llvm::ScalarEvolutioninlinestatic
setNoWrapFlags(SCEVAddRecExpr *AddRec, SCEV::NoWrapFlags Flags)llvm::ScalarEvolution
SimplifyICmpOperands(ICmpInst::Predicate &Pred, const SCEV *&LHS, const SCEV *&RHS, unsigned Depth=0)llvm::ScalarEvolution
SplitIntoInitAndPostInc(const Loop *L, const SCEV *S)llvm::ScalarEvolution
SymbolicMaximum enum valuellvm::ScalarEvolution
verify() constllvm::ScalarEvolution
willNotOverflow(Instruction::BinaryOps BinOp, bool Signed, const SCEV *LHS, const SCEV *RHS, const Instruction *CtxI=nullptr)llvm::ScalarEvolution
~ScalarEvolution()llvm::ScalarEvolution