/freebsd-current/contrib/llvm-project/llvm/lib/Transforms/Scalar/ |
H A D | InductiveRangeCheckElimination.cpp | 152 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 D | BDCE.cpp | 111 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 D | LoopBoundSplit.cpp | 51 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 D | AlignmentFromAssumptions.cpp | 52 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 D | IndVarSimplify.cpp | 130 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 D | ScalarEvolutionNormalization.cpp | 40 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 D | LoopCacheAnalysis.cpp | 82 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 D | Delinearization.cpp | 49 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 D | ScalarEvolutionDivision.cpp | 55 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 D | ScalarEvolutionAliasAnalysis.cpp | 27 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 D | IVUsers.cpp | 38 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 D | DependenceAnalysis.cpp | 130 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 D | LoopPeel.h | 26 bool peelLoop(Loop *L, unsigned PeelCount, LoopInfo *LI, ScalarEvolution *SE, 31 gatherPeelingPreferences(Loop *L, ScalarEvolution &SE, 40 ScalarEvolution &SE, AssumptionCache *AC = nullptr,
|
H A D | LoopRotationUtils.h | 34 AssumptionCache *AC, DominatorTree *DT, ScalarEvolution *SE,
|
/freebsd-current/contrib/llvm-project/llvm/include/llvm/Analysis/ |
H A D | ScalarEvolutionNormalization.h | 56 ScalarEvolution &SE, 62 ScalarEvolution &SE); 67 ScalarEvolution &SE);
|
H A D | ScalarEvolutionAliasAnalysis.h | 28 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 D | Delinearization.h | 31 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 D | LoopUnrollAnalyzer.h | 53 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 D | SetOperations.h | 26 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 D | LoopConstrainer.cpp | 22 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 D | ScalarEvolutionExpander.cpp | 93 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 D | SimplifyIndVar.cpp | 55 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 D | BoundsChecking.cpp | 59 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 D | MVETailPredication.cpp | 86 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 D | termstat.c | 60 IAC, SE); 68 IAC, SE);
|