Home
last modified time | relevance | path

Searched refs:SCEV (Results 1 – 25 of 97) sorted by relevance

1234

/netbsd/external/apache2/llvm/dist/llvm/include/llvm/Analysis/
H A DScalarEvolution.h126 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 DDependenceAnalysis.h53 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 DScalarEvolutionExpressions.h47 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 DScalarEvolutionDivision.h20 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 DScalarEvolutionNormalization.h45 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 DLoopCacheAnalysis.h28 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 DLoopAccessAnalysis.h31 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 DScalarEvolution.cpp1122 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 DDependenceAnalysis.cpp1098 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 DLoopCacheAnalysis.cpp80 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 DScalarEvolutionDivision.cpp32 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 DScalarEvolutionNormalization.cpp42 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 DLoopAccessAnalysis.cpp146 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 DScalarEvolutionAliasAnalysis.cpp35 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 DLoopStrengthReduce.cpp370 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 DInductiveRangeCheckElimination.cpp146 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 DAlignmentFromAssumptions.cpp95 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 DLoopPredication.cpp241 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 DNaryReassociate.cpp228 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 DIndVarSimplify.cpp579 : 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 DLoopIdiomRecognize.cpp215 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 DScalarEvolutionExpander.h36 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 DNaryReassociate.h96 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 DScalarEvolutionExpander.cpp274 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 DSimplifyIndVar.cpp426 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 …]

1234