/netbsd/external/apache2/llvm/dist/llvm/include/llvm/Analysis/ |
H A D | ScalarEvolution.h | 126 SCEV(const SCEV &) = delete; 524 const SCEV *getAddExpr(const SCEV *LHS, const SCEV *RHS, 530 const SCEV *getAddExpr(const SCEV *Op0, const SCEV *Op1, const SCEV *Op2, 539 const SCEV *getMulExpr(const SCEV *LHS, const SCEV *RHS, 545 const SCEV *getMulExpr(const SCEV *Op0, const SCEV *Op1, const SCEV *Op2, 551 const SCEV *getUDivExpr(const SCEV *LHS, const SCEV *RHS); 553 const SCEV *getURemExpr(const SCEV *LHS, const SCEV *RHS); 581 const SCEV *getSMaxExpr(const SCEV *LHS, const SCEV *RHS); 583 const SCEV *getUMaxExpr(const SCEV *LHS, const SCEV *RHS); 585 const SCEV *getSMinExpr(const SCEV *LHS, const SCEV *RHS); [all …]
|
H A D | DependenceAnalysis.h | 53 class SCEV; variable 388 const SCEV *A; 389 const SCEV *B; 390 const SCEV *C; 442 void setLine(const SCEV *A, const SCEV *B, 568 bool isKnownLessThan(const SCEV *S, const SCEV *Size) const; 792 const SCEV *getPositivePart(const SCEV *X) const; 796 const SCEV *getNegativePart(const SCEV *X) const; 903 const SCEV *findCoefficient(const SCEV *Expr, 911 const SCEV *zeroCoefficient(const SCEV *Expr, [all …]
|
H A D | ScalarEvolutionExpressions.h | 47 class SCEVConstant : public SCEV { 75 class SCEVCastExpr : public SCEV { 188 const SCEV *const *Operands; 308 SCEVUDivExpr(const FoldingSetNodeIDRef ID, const SCEV *lhs, const SCEV *rhs) in SCEVUDivExpr() 402 const SCEV *evaluateAtIteration(const SCEV *It, ScalarEvolution &SE) const; 569 RetVal visit(const SCEV *S) { in visit() 623 void push(const SCEV *S) { in push() 714 DenseMap<const SCEV *, const SCEV *> RewriteResults; 719 const SCEV *visit(const SCEV *S) { in visit() 856 static const SCEV *rewrite(const SCEV *Scev, ScalarEvolution &SE, in rewrite() [all …]
|
H A D | ScalarEvolutionDivision.h | 20 class SCEV; variable 30 static void divide(ScalarEvolution &SE, const SCEV *Numerator, 31 const SCEV *Denominator, const SCEV **Quotient, 32 const SCEV **Remainder); 57 SCEVDivision(ScalarEvolution &S, const SCEV *Numerator, 58 const SCEV *Denominator); 62 void cannotDivide(const SCEV *Numerator); 65 const SCEV *Denominator, *Quotient, *Remainder, *Zero, *One;
|
H A D | ScalarEvolutionNormalization.h | 45 class SCEV; variable 54 const SCEV *normalizeForPostIncUse(const SCEV *S, const PostIncLoopSet &Loops, 59 const SCEV *normalizeForPostIncUseIf(const SCEV *S, NormalizePredTy Pred, 64 const SCEV *denormalizeForPostIncUse(const SCEV *S, const PostIncLoopSet &Loops,
|
H A D | LoopCacheAnalysis.h | 28 class SCEV; variable 54 const SCEV *getBasePointer() const { return BasePointer; } in getBasePointer() 56 const SCEV *getSubscript(unsigned SubNum) const { in getSubscript() 60 const SCEV *getFirstSubscript() const { in getFirstSubscript() 64 const SCEV *getLastSubscript() const { in getLastSubscript() 109 const SCEV *getLastCoefficient() const; 113 bool isCoeffForLoopZeroOrInvariant(const SCEV &Subscript, 118 bool isSimpleAddRecurrence(const SCEV &Subscript, const Loop &L) const; 132 const SCEV *BasePointer = nullptr; 135 SmallVector<const SCEV *, 3> Subscripts; [all …]
|
H A D | LoopAccessAnalysis.h | 31 class SCEV; variable 357 const SCEV *High; 360 const SCEV *Low; 381 const SCEV *Start; 384 const SCEV *End; 393 const SCEV *Expr; 395 PointerInfo(Value *PointerValue, const SCEV *Start, const SCEV *End, in PointerInfo() 397 const SCEV *Expr) in PointerInfo() 664 const SCEV *replaceSymbolicStrideSCEV(PredicatedScalarEvolution &PSE,
|
/netbsd/external/apache2/llvm/dist/llvm/lib/Analysis/ |
H A D | ScalarEvolution.cpp | 1122 const SCEV *visit(const SCEV *S) { in getLosslessPtrToIntExpr() 1759 (SCEV::NoWrapFlags)(SCEV::FlagNSW | SCEV::FlagNUW), in getZeroExtendExpr() 1813 (SCEV::NoWrapFlags)(SCEV::FlagNSW | SCEV::FlagNUW), in getZeroExtendExpr() 1946 (SCEV::NoWrapFlags)(SCEV::FlagNSW | SCEV::FlagNUW), in getSignExtendExpr() 2074 (SCEV::NoWrapFlags)(SCEV::FlagNSW | SCEV::FlagNUW), in getSignExtendExpr() 3515 SCEV::NoWrapFlags Flags = IsNSW ? SCEV::FlagNSW : SCEV::FlagAnyWrap; in getAbsExpr() 3651 const SCEV *ScalarEvolution::getSMaxExpr(const SCEV *LHS, const SCEV *RHS) { in getSMaxExpr() 3660 const SCEV *ScalarEvolution::getUMaxExpr(const SCEV *LHS, const SCEV *RHS) { in getUMaxExpr() 3994 const SCEV *ScalarEvolution::getMinusSCEV(const SCEV *LHS, const SCEV *RHS, in getMinusSCEV() 9568 std::pair<const SCEV *, const SCEV *> [all …]
|
H A D | DependenceAnalysis.cpp | 1098 bool DependenceInfo::testZIV(const SCEV *Src, const SCEV *Dst, in testZIV() 1282 const SCEV *Coeff, const SCEV *SrcConst, const SCEV *DstConst, in weakCrossingSIVtest() 2209 bool DependenceInfo::testRDIV(const SCEV *Src, const SCEV *Dst, in testRDIV() 2275 bool DependenceInfo::testMIV(const SCEV *Src, const SCEV *Dst, in testMIV() 2317 bool DependenceInfo::gcdMIVtest(const SCEV *Src, const SCEV *Dst, in gcdMIVtest() 2526 const SCEV *A0; in banerjeeMIVtest() 2529 const SCEV *B0; in banerjeeMIVtest() 2886 const SCEV *DependenceInfo::getPositivePart(const SCEV *X) const { in getPositivePart() 2983 const SCEV *DependenceInfo::findCoefficient(const SCEV *Expr, in findCoefficient() 2999 const SCEV *DependenceInfo::zeroCoefficient(const SCEV *Expr, in zeroCoefficient() [all …]
|
H A D | LoopCacheAnalysis.cpp | 80 static bool isOneDimensionalArray(const SCEV &AccessFn, const SCEV &ElemSize, in isOneDimensionalArray() 89 const SCEV *Start = AR->getStart(); in isOneDimensionalArray() 128 for (const SCEV *Subscript : R.Subscripts) in operator <<() 132 for (const SCEV *Size : R.Sizes) in operator <<() 282 const SCEV *ElemSize = Sizes.back(); in computeRefCost() 289 const SCEV *RefCost = TripCount; in computeRefCost() 293 const SCEV *ElemSize = Sizes.back(); in computeRefCost() 333 const SCEV *AccessFn = in delinearize() 419 const SCEV *Coeff = getLastCoefficient(); in isConsecutive() 420 const SCEV *ElemSize = Sizes.back(); in isConsecutive() [all …]
|
H A D | ScalarEvolutionDivision.cpp | 32 static inline int sizeOfSCEV(const SCEV *S) { in sizeOfSCEV() 38 bool follow(const SCEV *S) { in sizeOfSCEV() 58 const SCEV *Denominator, const SCEV **Quotient, in divide() 87 const SCEV *Q, *R; in divide() 89 for (const SCEV *Op : T->operands()) { in divide() 132 const SCEV *StartQ, *StartR, *StepQ, *StepR; in visitAddRecExpr() 149 SmallVector<const SCEV *, 2> Qs, Rs; in visitAddExpr() 153 const SCEV *Q, *R; in visitAddExpr() 175 SmallVector<const SCEV *, 2> Qs; in visitMulExpr() 190 const SCEV *Q, *R; in visitMulExpr() [all …]
|
H A D | ScalarEvolutionNormalization.cpp | 42 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr); 46 const SCEV * 48 SmallVector<const SCEV *, 8> Operands; in visitAddRecExpr() 51 [&](const SCEV *Op) { return visit(Op); }); in visitAddRecExpr() 54 return SE.getAddRecExpr(Operands, AR->getLoop(), SCEV::FlagAnyWrap); in visitAddRecExpr() 93 return SE.getAddRecExpr(Operands, AR->getLoop(), SCEV::FlagAnyWrap); in visitAddRecExpr() 96 const SCEV *llvm::normalizeForPostIncUse(const SCEV *S, in normalizeForPostIncUse() 105 const SCEV *llvm::normalizeForPostIncUseIf(const SCEV *S, NormalizePredTy Pred, in normalizeForPostIncUseIf() 110 const SCEV *llvm::denormalizeForPostIncUse(const SCEV *S, in denormalizeForPostIncUse()
|
H A D | LoopAccessAnalysis.cpp | 146 const SCEV *OrigSCEV = PSE.getSCEV(Ptr); in replaceSymbolicStrideSCEV() 199 const SCEV *ScStart; in insert() 200 const SCEV *ScEnd; in insert() 228 const SCEV *EltSizeSCEV = in insert() 270 static const SCEV *getMinFromExprs(const SCEV *I, const SCEV *J, in getMinFromExprs() 646 const SCEV *PtrScev = PSE.getSCEV(Ptr); in isNoWrap() 1387 const SCEV *CastedDist = &Dist; in isSafeDependenceDistance() 1388 const SCEV *CastedProduct = Product; in isSafeDependenceDistance() 1475 const SCEV *Src = PSE.getSCEV(APtr); in isDependent() 1476 const SCEV *Sink = PSE.getSCEV(BPtr); in isDependent() [all …]
|
H A D | ScalarEvolutionAliasAnalysis.cpp | 35 const SCEV *AS = SE.getSCEV(const_cast<Value *>(LocA.Ptr)); in alias() 36 const SCEV *BS = SE.getSCEV(const_cast<Value *>(LocB.Ptr)); in alias() 55 const SCEV *BA = SE.getMinusSCEV(BS, AS); in alias() 69 const SCEV *AB = SE.getMinusSCEV(AS, BS); in alias() 103 Value *SCEVAAResult::GetBaseValue(const SCEV *S) { in GetBaseValue() 110 const SCEV *Last = A->getOperand(A->getNumOperands() - 1); in GetBaseValue()
|
/netbsd/external/apache2/llvm/dist/llvm/lib/Transforms/Scalar/ |
H A D | LoopStrengthReduce.cpp | 370 const SCEV *ScaledReg = nullptr; 447 for (const SCEV *S : MyBad) in DoInitialMatch() 671 static const SCEV *getExactSDiv(const SCEV *LHS, const SCEV *RHS, in getExactSDiv() 1586 for (const SCEV *S : OldRegs) in RecomputeRegs() 1860 const SCEV *IncExpr; 2572 const SCEV *Copy = Expr; in getUse() 2770 static const SCEV *getExprBase(const SCEV *S) { in getExprBase() 2789 const SCEV *SubExpr = *I; in getExprBase() 3502 static const SCEV *CollectSubexprs(const SCEV *S, const SCEVConstant *C, in CollectSubexprs() 3548 const SCEV *Remainder = in CollectSubexprs() [all …]
|
H A D | InductiveRangeCheckElimination.cpp | 146 const SCEV *Step = nullptr; 147 const SCEV *End = nullptr; 188 const SCEV *Begin; 189 const SCEV *End; 192 Range(const SCEV *Begin, const SCEV *End) : Begin(Begin), End(End) { in Range() 660 const SCEV *BoundSCEV, const SCEV *Step, in isSafeDecreasingBound() 699 const SCEV *MinusOne = in isSafeDecreasingBound() 710 const SCEV *BoundSCEV, const SCEV *Step, in isSafeIncreasingBound() 843 return AR->getNoWrapFlags(SCEV::FlagNSW) != SCEV::FlagAnyWrap; in parseLoopStructure() 1057 static const SCEV *NoopOrExtend(const SCEV *S, Type *Ty, ScalarEvolution &SE, in NoopOrExtend() [all …]
|
H A D | AlignmentFromAssumptions.cpp | 95 static MaybeAlign getNewAlignmentDiff(const SCEV *DiffSCEV, in getNewAlignmentDiff() 96 const SCEV *AlignSCEV, in getNewAlignmentDiff() 99 const SCEV *DiffUnitsSCEV = SE->getURemExpr(DiffSCEV, AlignSCEV); in getNewAlignmentDiff() 127 static Align getNewAlignment(const SCEV *AASCEV, const SCEV *AlignSCEV, in getNewAlignment() 128 const SCEV *OffSCEV, Value *Ptr, in getNewAlignment() 130 const SCEV *PtrSCEV = SE->getSCEV(Ptr); in getNewAlignment() 136 const SCEV *DiffSCEV = SE->getMinusSCEV(PtrSCEV, AASCEV); in getNewAlignment() 163 const SCEV *DiffStartSCEV = DiffARSCEV->getStart(); in getNewAlignment() 164 const SCEV *DiffIncSCEV = DiffARSCEV->getStepRecurrence(*SE); in getNewAlignment() 232 const SCEV *AlignSCEV, *OffSCEV; in processAssumption() [all …]
|
H A D | LoopPredication.cpp | 241 const SCEV *Limit; 243 const SCEV *Limit) in LoopICmp() 264 bool isSupportedStep(const SCEV* Step); 282 bool isLoopInvariantValue(const SCEV* S); 286 const SCEV *RHS); 379 const SCEV *LHSS = SE->getSCEV(LHS); in parseLoopICmp() 382 const SCEV *RHSS = SE->getSCEV(RHS); in parseLoopICmp() 519 for (const SCEV *Op : Ops) in findInsertPt() 574 const SCEV *GuardLimit = RangeCheck.Limit; in widenICmpRangeCheckIncrementingLoop() 594 const SCEV *RHS = in widenICmpRangeCheckIncrementingLoop() [all …]
|
H A D | NaryReassociate.cpp | 228 const SCEV *OrigSCEV = nullptr; in doOneIteration() 237 const SCEV *NewSCEV = SE->getSCEV(NewI); in doOneIteration() 396 SmallVector<const SCEV *, 4> IndexExprs; in tryReassociateGEPAtIndex() 481 const SCEV *AExpr = SE->getSCEV(A), *BExpr = SE->getSCEV(B); in tryReassociateBinaryOp() 482 const SCEV *RHSExpr = SE->getSCEV(RHS); in tryReassociateBinaryOp() 535 const SCEV *LHS, in getBinarySCEV() 602 const SCEV *RHSExpr = SE->getSCEV(RHS); in tryReassociateMinOrMax() 626 SmallVector<const SCEV *, 2> Ops1{ BExpr, AExpr }; in tryReassociateMinOrMax() 628 const SCEV *R1Expr = SE->getMinMaxExpr(SCEVType, Ops1); in tryReassociateMinOrMax() 639 SmallVector<const SCEV *, 2> Ops2{ RHSExpr, R1Expr }; in tryReassociateMinOrMax() [all …]
|
H A D | IndVarSimplify.cpp | 579 : SE(SCEV), TTI(TTI), IVPhi(IV) { in IndVarSimplifyVisitor() 898 const SCEV *BestInit = nullptr; in FindLoopCounter() 945 const SCEV *Init = AR->getStart(); in FindLoopCounter() 978 const SCEV *IVInit = AR->getStart(); in genLoopLimit() 1065 const SCEV *ExitCount, in linearFunctionTestReplace() 1152 const SCEV *IV = SE->getSCEV(CmpIndVar); in linearFunctionTestReplace() 1155 const SCEV *ZExtTrunc = in linearFunctionTestReplace() 1163 const SCEV *SExtTrunc = in linearFunctionTestReplace() 1314 const SCEV *InvariantLHS, const SCEV *InvariantRHS, SCEVExpander &Rewriter, in replaceWithInvariantCond() 1353 const SCEV *LHSS = SE->getSCEVAtScope(LHS, L); in optimizeLoopExitWithUnknownExitCount() [all …]
|
H A D | LoopIdiomRecognize.cpp | 215 const SCEV *BECount); 622 BasicBlock *BB, const SCEV *BECount, in runOnLoopBlock() 806 const SCEV *BECount) { in processLoopMemIntrinsic() 982 static const SCEV *getStartForNegStride(const SCEV *Start, const SCEV *BECount, in getStartForNegStride() 996 static const SCEV *getNumBytes(const SCEV *BECount, Type *IntPtr, in getNumBytes() 999 const SCEV *NumBytesS; in getNumBytes() 1056 const SCEV *Start = Ev->getStart(); in processLoopStridedStore() 1092 const SCEV *NumBytesS = in processLoopStridedStore() 1192 const SCEV *BECount) { in processLoopStoreOfLoopLoad() 1284 const SCEV *NumBytesS = in processLoopStoreOfLoopLoad() [all …]
|
/netbsd/external/apache2/llvm/dist/llvm/include/llvm/Transforms/Utils/ |
H A D | ScalarEvolutionExpander.h | 36 bool isSafeToExpand(const SCEV *S, ScalarEvolution &SE); 47 explicit SCEVOperand(unsigned Opc, int Idx, const SCEV *S) : in SCEVOperand() 54 const SCEV* S; 74 DenseMap<std::pair<const SCEV *, Instruction *>, TrackingVH<Value>> 87 DenseMap<const SCEV *, const Loop *> RelevantLoops; 241 SmallPtrSet<const SCEV *, 8> Processed; 278 Value *expandCodeFor(const SCEV *SH, Type *Ty = nullptr) { 396 Value *expandCodeForImpl(const SCEV *SH, Type *Ty, bool Root); 433 Value *expandAddToGEP(const SCEV *const *op_begin, const SCEV *const *op_end, 441 Value *expand(const SCEV *S); [all …]
|
/netbsd/external/apache2/llvm/dist/llvm/include/llvm/Transforms/Scalar/ |
H A D | NaryReassociate.h | 96 class SCEV; variable 117 Instruction *tryReassociate(Instruction *I, const SCEV *&OrigSCEV); 146 Instruction *tryReassociatedBinaryOp(const SCEV *LHS, Value *RHS, 153 const SCEV *getBinarySCEV(BinaryOperator *I, const SCEV *LHS, 154 const SCEV *RHS); 158 Instruction *findClosestMatchingDominator(const SCEV *CandidateExpr, 167 const SCEV *&OrigSCEV); 196 DenseMap<const SCEV *, SmallVector<WeakTrackingVH, 2>> SeenExprs;
|
/netbsd/external/apache2/llvm/dist/llvm/lib/Transforms/Utils/ |
H A D | ScalarEvolutionExpander.cpp | 274 if (Flags & SCEV::FlagNUW) in InsertBinop() 276 if (Flags & SCEV::FlagNSW) in InsertBinop() 286 static bool FactorOutConstant(const SCEV *&S, const SCEV *&Remainder, in FactorOutConstant() 753 const SCEV *Op = I->second; in visitAddExpr() 919 static void ExposePointerBase(const SCEV *&Base, const SCEV *&Rest, in ExposePointerBase() 1176 const SCEV *ExtendAfterOp = in IsIncrementNSW() 1190 const SCEV *ExtendAfterOp = in IsIncrementNUW() 1680 const SCEV *NewS = S; in visitAddRecExpr() 2373 const SCEV *S = WorkItem.S; in isHighCostExpansionHelper() 2488 const SCEV *ExitCount = in generateOverflowCheck() [all …]
|
H A D | SimplifyIndVar.cpp | 426 bool Signed, const SCEV *LHS, const SCEV *RHS) { in willNotOverflow() 427 const SCEV *(ScalarEvolution::*Operation)(const SCEV *, const SCEV *, in willNotOverflow() 443 const SCEV *(ScalarEvolution::*Extension)(const SCEV *, Type *, unsigned) = in willNotOverflow() 452 const SCEV *A = in willNotOverflow() 455 const SCEV *B = in willNotOverflow() 1107 const SCEV *getSCEVByOpCode(const SCEV *LHS, const SCEV *RHS, 1273 const SCEV *WideLHS; in cloneArithmeticIVUser() 1274 const SCEV *WideRHS; in cloneArithmeticIVUser() 1293 const SCEV *WideUse = in cloneArithmeticIVUser() 1331 const SCEV *WidenIV::getSCEVByOpCode(const SCEV *LHS, const SCEV *RHS, in getSCEVByOpCode() [all …]
|