Searched refs:SE (Results 1 - 25 of 241) sorted by relevance

12345678910

/freebsd-current/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DInductiveRangeCheckElimination.cpp152 static bool parseRangeCheckICmp(Loop *L, ICmpInst *ICI, ScalarEvolution &SE,
157 extractRangeChecksFromCond(Loop *L, ScalarEvolution &SE, Use &ConditionUse,
162 ICmpInst::Predicate Pred, ScalarEvolution &SE,
167 ICmpInst::Predicate Pred, ScalarEvolution &SE,
210 bool isEmpty(ScalarEvolution &SE, bool IsSigned) const { argument
214 return SE.isKnownPredicate(ICmpInst::ICMP_SGE, Begin, End);
216 return SE.isKnownPredicate(ICmpInst::ICMP_UGE, Begin, End);
227 std::optional<Range> computeSafeIterationSpace(ScalarEvolution &SE,
237 BranchInst *BI, Loop *L, ScalarEvolution &SE, BranchProbabilityInfo *BPI,
242 ScalarEvolution &SE; member in class:__anon55::InductiveRangeCheckElimination
256 InductiveRangeCheckElimination(ScalarEvolution &SE, BranchProbabilityInfo *BPI, DominatorTree &DT, LoopInfo &LI, GetBFIFunc GetBFI = std::nullopt) argument
270 parseRangeCheckICmp(Loop *L, ICmpInst *ICI, ScalarEvolution &SE, const SCEVAddRecExpr *&Index, const SCEV *&End) argument
304 parseIvAgaisntLimit(Loop *L, Value *LHS, Value *RHS, ICmpInst::Predicate Pred, ScalarEvolution &SE, const SCEVAddRecExpr *&Index, const SCEV *&End) argument
367 reassociateSubLHS( Loop *L, Value *VariantLHS, Value *InvariantRHS, ICmpInst::Predicate Pred, ScalarEvolution &SE, const SCEVAddRecExpr *&Index, const SCEV *&End) argument
485 extractRangeChecksFromCond( Loop *L, ScalarEvolution &SE, Use &ConditionUse, SmallVectorImpl<InductiveRangeCheck> &Checks, SmallPtrSetImpl<Value *> &Visited) argument
525 extractRangeChecksFromBranch( BranchInst *BI, Loop *L, ScalarEvolution &SE, BranchProbabilityInfo *BPI, SmallVectorImpl<InductiveRangeCheck> &Checks, bool &Changed) argument
557 NoopOrExtend(const SCEV *S, Type *Ty, ScalarEvolution &SE, bool Signed) argument
566 calculateSubRanges(ScalarEvolution &SE, const Loop &L, InductiveRangeCheck::Range &Range, const LoopStructure &MainLoopStructure) argument
651 computeSafeIterationSpace(ScalarEvolution &SE, const SCEVAddRecExpr *IndVar, bool IsLatchSigned) const argument
828 IntersectSignedRange(ScalarEvolution &SE, const std::optional<InductiveRangeCheck::Range> &R1, const InductiveRangeCheck::Range &R2) argument
857 IntersectUnsignedRange(ScalarEvolution &SE, const std::optional<InductiveRangeCheck::Range> &R1, const InductiveRangeCheck::Range &R2) argument
[all...]
H A DBDCE.cpp111 if (SExtInst *SE = dyn_cast<SExtInst>(&I)) {
112 APInt Demanded = DB.getDemandedBits(SE);
113 const uint32_t SrcBitSize = SE->getSrcTy()->getScalarSizeInBits();
114 auto *const DstTy = SE->getDestTy();
117 clearAssumptionsOfUsers(SE, DB);
118 IRBuilder<> Builder(SE);
120 Builder.CreateZExt(SE->getOperand(0), DstTy, SE->getName()));
121 Worklist.push_back(SE);
H A DLoopBoundSplit.cpp51 static void analyzeICmp(ScalarEvolution &SE, ICmpInst *ICmp, argument
56 const SCEV *AddRecSCEV = SE.getSCEV(Cond.AddRecValue);
57 const SCEV *BoundSCEV = SE.getSCEV(Cond.BoundValue);
80 static bool calculateUpperBound(const Loop &L, ScalarEvolution &SE, argument
83 const SCEV *ExitCount = SE.getExitCount(&L, Cond.ICmp->getParent());
107 const SCEV *MaxSCEV = SE.getConstant(Max);
111 if (SE.isKnownPredicate(Pred, Cond.BoundSCEV, MaxSCEV)) {
113 SE.getAddExpr(Cond.BoundSCEV, SE.getOne(BoundSCEVIntType));
125 static bool hasProcessableCondition(const Loop &L, ScalarEvolution &SE, argument
159 isProcessableCondBI(const ScalarEvolution &SE, const BranchInst *BI) argument
179 canSplitLoopBound(const Loop &L, const DominatorTree &DT, ScalarEvolution &SE, ConditionInfo &Cond) argument
243 findSplitCandidate(const Loop &L, ScalarEvolution &SE, ConditionInfo &ExitingCond, ConditionInfo &SplitCandidateCond) argument
288 splitLoopBound(Loop &L, DominatorTree &DT, LoopInfo &LI, ScalarEvolution &SE, LPMUpdater &U) argument
[all...]
H A DAlignmentFromAssumptions.cpp52 ScalarEvolution *SE) {
54 const SCEV *DiffUnitsSCEV = SE->getURemExpr(DiffSCEV, AlignSCEV);
84 ScalarEvolution *SE) {
85 const SCEV *PtrSCEV = SE->getSCEV(Ptr);
87 const SCEV *DiffSCEV = SE->getMinusSCEV(PtrSCEV, AASCEV);
93 DiffSCEV = SE->getNoopOrSignExtend(DiffSCEV, OffSCEV->getType());
97 DiffSCEV = SE->getAddExpr(DiffSCEV, OffSCEV);
103 if (MaybeAlign NewAlignment = getNewAlignmentDiff(DiffSCEV, AlignSCEV, SE)) {
117 const SCEV *DiffIncSCEV = DiffARSCEV->getStepRecurrence(*SE);
126 MaybeAlign NewAlignment = getNewAlignmentDiff(DiffStartSCEV, AlignSCEV, SE);
50 getNewAlignmentDiff(const SCEV *DiffSCEV, const SCEV *AlignSCEV, ScalarEvolution *SE) argument
82 getNewAlignment(const SCEV *AASCEV, const SCEV *AlignSCEV, const SCEV *OffSCEV, Value *Ptr, ScalarEvolution *SE) argument
303 ScalarEvolution &SE = AM.getResult<ScalarEvolutionAnalysis>(F); local
[all...]
H A DIndVarSimplify.cpp130 ScalarEvolution *SE; member in class:__anon2910::IndVarSimplify
163 IndVarSimplify(LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT, argument
166 : LI(LI), SE(SE), DT(DT), DL(DL), TLI(TLI), TTI(TTI),
415 SE->forgetLoop(L);
487 SE->forgetValue(&PN);
503 ScalarEvolution *SE,
510 uint64_t Width = SE->getTypeSizeInBits(Ty);
518 uint64_t NarrowIVWidth = SE->getTypeSizeInBits(WI.NarrowIV->getType());
536 Width > SE
502 visitIVCast(CastInst *Cast, WideIVInfo &WI, ScalarEvolution *SE, const TargetTransformInfo *TTI) argument
560 ScalarEvolution *SE; member in class:__anon2911::IndVarSimplifyVisitor
795 isLoopCounter(PHINode* Phi, Loop *L, ScalarEvolution *SE) argument
824 FindLoopCounter(Loop *L, BasicBlock *ExitingBB, const SCEV *BECount, ScalarEvolution *SE, DominatorTree *DT) argument
904 genLoopLimit(PHINode *IndVar, BasicBlock *ExitingBB, const SCEV *ExitCount, bool UsePostInc, Loop *L, SCEVExpander &Rewriter, ScalarEvolution *SE) argument
1195 replaceLoopPHINodesWithPreheaderValues( LoopInfo *LI, Loop *L, SmallVectorImpl<WeakTrackingVH> &DeadInsts, ScalarEvolution &SE) argument
1253 createReplacement(ICmpInst *ICmp, const Loop *L, BasicBlock *ExitingBB, const SCEV *MaxIter, bool Inverted, bool SkipLastIter, ScalarEvolution *SE, SCEVExpander &Rewriter) argument
1310 optimizeLoopExitWithUnknownExitCount( const Loop *L, BranchInst *BI, BasicBlock *ExitingBB, const SCEV *MaxIter, bool SkipLastIter, ScalarEvolution *SE, SCEVExpander &Rewriter, SmallVectorImpl<WeakTrackingVH> &DeadInsts) argument
[all...]
/freebsd-current/contrib/llvm-project/llvm/lib/Analysis/
H A DScalarEvolutionNormalization.cpp40 ScalarEvolution &SE)
41 : SCEVRewriteVisitor<NormalizeDenormalizeRewriter>(SE), Kind(Kind),
55 return SE.getAddRecExpr(Operands, AR->getLoop(), SCEV::FlagAnyWrap);
67 Operands[i] = SE.getAddExpr(Operands[i], Operands[i + 1]);
91 Operands[i] = SE.getMinusSCEV(Operands[i], Operands[i + 1]);
94 return SE.getAddRecExpr(Operands, AR->getLoop(), SCEV::FlagAnyWrap);
99 ScalarEvolution &SE,
107 NormalizeDenormalizeRewriter(Normalize, Pred, SE).visit(S);
108 const SCEV *Denormalized = denormalizeForPostIncUse(Normalized, Loops, SE);
116 ScalarEvolution &SE) {
39 NormalizeDenormalizeRewriter(TransformKind Kind, NormalizePredTy Pred, ScalarEvolution &SE) argument
97 normalizeForPostIncUse(const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE, bool CheckInvertible) argument
115 normalizeForPostIncUseIf(const SCEV *S, NormalizePredTy Pred, ScalarEvolution &SE) argument
120 denormalizeForPostIncUse(const SCEV *S, const PostIncLoopSet &Loops, ScalarEvolution &SE) argument
[all...]
H A DLoopCacheAnalysis.cpp82 const Loop &L, ScalarEvolution &SE) {
91 const SCEV *Step = AR->getStepRecurrence(SE);
96 if (!SE.isLoopInvariant(Start, &L) || !SE.isLoopInvariant(Step, &L))
99 const SCEV *StepRec = AR->getStepRecurrence(SE);
100 if (StepRec && SE.isKnownNegative(StepRec))
101 StepRec = SE.getNegativeSCEV(StepRec);
110 ScalarEvolution &SE) {
111 const SCEV *BackedgeTakenCount = SE.getBackedgeTakenCount(&L);
114 ? SE
[all...]
H A DDelinearization.cpp49 ScalarEvolution &SE;
52 SCEVCollectStrides(ScalarEvolution &SE, SmallVectorImpl<const SCEV *> &S)
53 : SE(SE), Strides(S) {}
57 Strides.push_back(AR->getStepRecurrence(SE));
124 ScalarEvolution &SE;
127 ScalarEvolution &SE)
128 : Terms(T), SE(SE) {}
153 Terms.push_back(SE
[all...]
H A DScalarEvolutionDivision.cpp55 void SCEVDivision::divide(ScalarEvolution &SE, const SCEV *Numerator, argument
60 SCEVDivision D(SE, Numerator, Denominator);
88 divide(SE, *Quotient, Op, &Q, &R);
123 Quotient = SE.getConstant(QuotientVal);
124 Remainder = SE.getConstant(RemainderVal);
137 divide(SE, Numerator->getStart(), Denominator, &StartQ, &StartR);
138 divide(SE, Numerator->getStepRecurrence(SE), Denominator, &StepQ, &StepR);
144 Quotient = SE.getAddRecExpr(StartQ, StepQ, Numerator->getLoop(),
146 Remainder = SE
[all...]
H A DScalarEvolutionAliasAnalysis.cpp27 static bool canComputePointerDiff(ScalarEvolution &SE, argument
29 if (SE.getEffectiveSCEVType(A->getType()) !=
30 SE.getEffectiveSCEVType(B->getType()))
33 return SE.instructionCouldExistWithOperands(A, B);
46 const SCEV *AS = SE.getSCEV(const_cast<Value *>(LocA.Ptr));
47 const SCEV *BS = SE.getSCEV(const_cast<Value *>(LocB.Ptr));
55 if (canComputePointerDiff(SE, AS, BS)) {
56 unsigned BitWidth = SE.getTypeSizeInBits(AS->getType());
65 const SCEV *BA = SE.getMinusSCEV(BS, AS);
71 ASizeInt.ule(SE
[all...]
H A DIVUsers.cpp38 return IVUsers(&L, &AR.AC, &AR.LI, &AR.DT, &AR.SE);
57 ScalarEvolution *SE, LoopInfo *LI) {
65 SE->getSCEVAtScope(AR, LI->getLoopFor(I->getParent())) != AR);
69 return isInteresting(AR->getStart(), I, L, SE, LI) &&
70 !isInteresting(AR->getStepRecurrence(*SE), I, L, SE, LI);
77 if (isInteresting(Op, I, L, SE, LI)) {
144 if (!SE->isSCEVable(I->getType()))
156 uint64_t Width = SE->getTypeSizeInBits(I->getType());
166 const SCEV *ISE = SE
56 isInteresting(const SCEV *S, const Instruction *I, const Loop *L, ScalarEvolution *SE, LoopInfo *LI) argument
251 IVUsers(Loop *L, AssumptionCache *AC, LoopInfo *LI, DominatorTree *DT, ScalarEvolution *SE) argument
317 auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE(); local
[all...]
H A DDependenceAnalysis.cpp130 auto &SE = FAM.getResult<ScalarEvolutionAnalysis>(F); local
132 return DependenceInfo(&F, &AA, &SE, &LI);
158 auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE(); local
160 info.reset(new DependenceInfo(&F, &AA, &SE, &LI));
180 ScalarEvolution &SE, bool NormalizeResults) {
192 if (NormalizeResults && D->normalize(&SE))
303 bool FullDependence::normalize(ScalarEvolution *SE) { argument
323 SE->getNegativeSCEV(DV[Level - 1].Distance);
429 return SE->getNegativeSCEV(C);
460 A = SE
179 dumpExampleDependence(raw_ostream &OS, DependenceInfo *DA, ScalarEvolution &SE, bool NormalizeResults) argument
[all...]
/freebsd-current/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DLoopPeel.h26 bool peelLoop(Loop *L, unsigned PeelCount, LoopInfo *LI, ScalarEvolution *SE,
31 gatherPeelingPreferences(Loop *L, ScalarEvolution &SE,
40 ScalarEvolution &SE, AssumptionCache *AC = nullptr,
H A DLoopRotationUtils.h34 AssumptionCache *AC, DominatorTree *DT, ScalarEvolution *SE,
/freebsd-current/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DScalarEvolutionNormalization.h56 ScalarEvolution &SE,
62 ScalarEvolution &SE);
67 ScalarEvolution &SE);
H A DScalarEvolutionAliasAnalysis.h28 ScalarEvolution &SE; member in class:llvm::SCEVAAResult
31 explicit SCEVAAResult(ScalarEvolution &SE) : SE(SE) {} argument
32 SCEVAAResult(SCEVAAResult &&Arg) : AAResultBase(std::move(Arg)), SE(Arg.SE) {}
H A DDelinearization.h31 void findArrayDimensions(ScalarEvolution &SE,
38 void collectParametricTerms(ScalarEvolution &SE, const SCEV *Expr,
43 void computeAccessFunctions(ScalarEvolution &SE, const SCEV *Expr,
110 void delinearize(ScalarEvolution &SE, const SCEV *Expr,
123 bool getIndexExpressionsFromGEP(ScalarEvolution &SE,
134 bool tryDelinearizeFixedSizeImpl(ScalarEvolution *SE, Instruction *Inst,
H A DLoopUnrollAnalyzer.h53 ScalarEvolution &SE, const Loop *L)
54 : SimplifiedValues(SimplifiedValues), SE(SE), L(L) {
55 IterationNumber = SE.getConstant(APInt(64, Iteration));
81 ScalarEvolution &SE; member in class:llvm::UnrolledInstAnalyzer
51 UnrolledInstAnalyzer(unsigned Iteration, DenseMap<Value *, Value *> &SimplifiedValues, ScalarEvolution &SE, const Loop *L) argument
/freebsd-current/contrib/llvm-project/llvm/include/llvm/ADT/
H A DSetOperations.h26 for (typename S2Ty::const_iterator SI = S2.begin(), SE = S2.end();
27 SI != SE; ++SI)
51 for (typename S1Ty::const_iterator SI = S1.begin(), SE = S1.end(); SI != SE;
72 for (typename S1Ty::const_iterator SI = S1.begin(), SE = S1.end();
73 SI != SE; ++SI)
83 for (typename S2Ty::const_iterator SI = S2.begin(), SE = S2.end();
84 SI != SE; ++SI)
93 for (typename S2Ty::const_iterator SI = S2.begin(), SE = S2.end(); SI != SE;
[all...]
/freebsd-current/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DLoopConstrainer.cpp22 ScalarEvolution &SE) {
27 if (!SE.isAvailableAtLoopEntry(BoundSCEV, L))
30 assert(SE.isKnownNegative(Step) && "expecting negative step");
46 return SE.isLoopEntryGuardedByCond(L, BoundPred, Start, BoundSCEV);
50 const SCEV *StepPlusOne = SE.getAddExpr(Step, SE.getOne(Step->getType()));
54 const SCEV *Limit = SE.getMinusSCEV(SE.getConstant(Min), StepPlusOne);
57 SE.getMinusSCEV(BoundSCEV, SE
19 isSafeDecreasingBound(const SCEV *Start, const SCEV *BoundSCEV, const SCEV *Step, ICmpInst::Predicate Pred, unsigned LatchBrExitIdx, Loop *L, ScalarEvolution &SE) argument
65 isSafeIncreasingBound(const SCEV *Start, const SCEV *BoundSCEV, const SCEV *Step, ICmpInst::Predicate Pred, unsigned LatchBrExitIdx, Loop *L, ScalarEvolution &SE) argument
109 getNarrowestLatchMaxTakenCountEstimate(ScalarEvolution &SE, const Loop &L) argument
119 parseLoopStructure(ScalarEvolution &SE, Loop &L, bool AllowUnsignedLatchCond, const char *&FailureReason) argument
454 LoopConstrainer(Loop &L, LoopInfo &LI, function_ref<void(Loop *, bool)> LPMAddNewLoop, const LoopStructure &LS, ScalarEvolution &SE, DominatorTree &DT, Type *T, SubRanges SR) argument
[all...]
H A DScalarEvolutionExpander.cpp93 SE.DT.dominates(cast<Instruction>(Ret), &*BIP));
162 assert(SE.getTypeSizeInBits(V->getType()) == SE.getTypeSizeInBits(Ty) &&
186 SE.getTypeSizeInBits(Ty) == SE.getTypeSizeInBits(V->getType())) {
190 SE.getTypeSizeInBits(CI->getType()) ==
191 SE.getTypeSizeInBits(CI->getOperand(0)->getType()))
196 SE.getTypeSizeInBits(CE->getType()) ==
197 SE.getTypeSizeInBits(CE->getOperand(0)->getType()))
261 while (const Loop *L = SE
809 canBeCheaplyTransformed(ScalarEvolution &SE, const SCEVAddRecExpr *Phi, const SCEVAddRecExpr *Requested, bool &InvertStep) argument
842 IsIncrementNSW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) argument
856 IsIncrementNUW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) argument
2217 ScalarEvolution &SE; member in struct:__anon3009::SCEVFindUnsafe
2221 SCEVFindUnsafe(ScalarEvolution &SE, bool CanonicalMode) argument
[all...]
H A DSimplifyIndVar.cpp55 ScalarEvolution *SE; member in class:__anon3012::SimplifyIndvar
64 SimplifyIndvar(Loop *Loop, ScalarEvolution *SE, DominatorTree *DT, argument
68 : L(Loop), LI(LI), SE(SE), DT(DT), TTI(TTI), Rewriter(Rewriter),
150 assert(SE->isSCEVable(IVSrc->getType()) && "Expect SCEVable IV operand");
162 const auto *LHS = SE->getSCEV(IVSrc);
163 const auto *RHS = SE->getSCEV(D);
164 FoldedExpr = SE->getUDivExpr(LHS, RHS);
167 if (UseInst->isExact() && LHS != SE->getMulExpr(FoldedExpr, RHS))
171 if (!SE
861 isSimpleIVUser(Instruction *I, const Loop *L, ScalarEvolution *SE) argument
984 simplifyUsersOfIV(PHINode *CurrIV, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, const TargetTransformInfo *TTI, SmallVectorImpl<WeakTrackingVH> &Dead, SCEVExpander &Rewriter, IVVisitor *V) argument
996 simplifyLoopIVs(Loop *L, ScalarEvolution *SE, DominatorTree *DT, LoopInfo *LI, const TargetTransformInfo *TTI, SmallVectorImpl<WeakTrackingVH> &Dead) argument
1027 ScalarEvolution *SE; member in class:__anon3013::WidenIV
2129 createWideIV(const WideIVInfo &WI, LoopInfo *LI, ScalarEvolution *SE, SCEVExpander &Rewriter, DominatorTree *DT, SmallVectorImpl<WeakTrackingVH> &DeadInsts, unsigned &NumElimExt, unsigned &NumWidened, bool HasGuards, bool UsePostIncrementRanges) argument
[all...]
/freebsd-current/contrib/llvm-project/llvm/lib/Transforms/Instrumentation/
H A DBoundsChecking.cpp59 BuilderTy &IRB, ScalarEvolution &SE) {
78 auto SizeRange = SE.getUnsignedRange(SE.getSCEV(Size));
79 auto OffsetRange = SE.getUnsignedRange(SE.getSCEV(Offset));
80 auto NeededSizeRange = SE.getUnsignedRange(SE.getSCEV(NeededSizeVal));
143 ScalarEvolution &SE) {
162 ObjSizeEval, IRB, SE);
166 DL, TLI, ObjSizeEval, IRB, SE);
56 getBoundsCheckCond(Value *Ptr, Value *InstVal, const DataLayout &DL, TargetLibraryInfo &TLI, ObjectSizeOffsetEvaluator &ObjSizeEval, BuilderTy &IRB, ScalarEvolution &SE) argument
142 addBoundsChecking(Function &F, TargetLibraryInfo &TLI, ScalarEvolution &SE) argument
227 auto &SE = AM.getResult<ScalarEvolutionAnalysis>(F); local
[all...]
/freebsd-current/contrib/llvm-project/llvm/lib/Target/ARM/
H A DMVETailPredication.cpp86 ScalarEvolution *SE = nullptr; member in class:__anon2393::MVETailPredication
133 SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
208 auto *EC= SE->getSCEV(ElemCount);
209 auto *TC = SE->getSCEV(TripCount);
220 if (!SE->isLoopInvariant(EC, L)) {
231 auto *IVExpr = SE->getSCEV(IV);
294 auto *VW = SE->getSCEV(ConstantInt::get(TripCount->getType(), VectorWidth));
297 auto *ECPlusVWMinus1 = SE->getAddExpr(EC,
298 SE->getSCEV(ConstantInt::get(TripCount->getType(), VectorWidth - 1)));
301 auto *Ceil = SE
[all...]
/freebsd-current/crypto/heimdal/appl/telnet/telnetd/
H A Dtermstat.c60 IAC, SE);
68 IAC, SE);

Completed in 249 milliseconds

12345678910