Home
last modified time | relevance | path

Searched refs:SCEVAddRecExpr (Results 1 – 25 of 27) sorted by relevance

12

/external/llvm/lib/Analysis/
DIVUsers.cpp56 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in isInteresting()
340 static const SCEVAddRecExpr *findAddRecForLoop(const SCEV *S, const Loop *L) { in findAddRecForLoop()
341 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in findAddRecForLoop()
350 if (const SCEVAddRecExpr *AR = findAddRecForLoop(*I, L)) in findAddRecForLoop()
359 if (const SCEVAddRecExpr *AR = findAddRecForLoop(getExpr(IU), L)) in getStride()
DScalarEvolution.cpp160 const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(this); in print()
545 const SCEVAddRecExpr *LA = cast<SCEVAddRecExpr>(LHS); in compare()
546 const SCEVAddRecExpr *RA = cast<SCEVAddRecExpr>(RHS); in compare()
782 void visitAddRecExpr(const SCEVAddRecExpr *Numerator) { in visitAddRecExpr()
1046 const SCEV *SCEVAddRecExpr::evaluateAtIteration(const SCEV *It, in evaluateAtIteration()
1131 if (const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Op)) { in getTruncateExpr()
1240 static const SCEV *getPreStartForExtend(const SCEVAddRecExpr *AR, Type *Ty, in getPreStartForExtend()
1272 const SCEVAddRecExpr *PreAR = dyn_cast<SCEVAddRecExpr>( in getPreStartForExtend()
1295 const_cast<SCEVAddRecExpr *>(PreAR)->setNoWrapFlags(WrapType); in getPreStartForExtend()
1314 static const SCEV *getExtendAddRecStart(const SCEVAddRecExpr *AR, Type *Ty, in getExtendAddRecStart()
[all …]
DScalarEvolutionExpander.cpp279 if (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(S)) { in FactorOutConstant()
305 for (unsigned i = Ops.size(); i > 0 && isa<SCEVAddRecExpr>(Ops[i-1]); --i) in SimplifyAddOperands()
336 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Ops[i])) { in SplitAddRecs()
617 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in getRelevantLoop()
806 while (const SCEVAddRecExpr *A = dyn_cast<SCEVAddRecExpr>(Base)) { in ExposePointerBase()
1008 const SCEVAddRecExpr *Phi, in canBeCheaplyTransformed()
1009 const SCEVAddRecExpr *Requested, in canBeCheaplyTransformed()
1018 Phi = dyn_cast<SCEVAddRecExpr>(SE.getTruncateOrNoop(Phi, RequestedTy)); in canBeCheaplyTransformed()
1038 static bool IsIncrementNSW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNSW()
1052 static bool IsIncrementNUW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) { in IsIncrementNUW()
[all …]
DDependenceAnalysis.cpp861 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Src); in checkSrcSubscript()
887 const SCEVAddRecExpr *AddRec = dyn_cast<SCEVAddRecExpr>(Dst); in checkDstSubscript()
2114 const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src); in testSIV()
2115 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst); in testSIV()
2192 const SCEVAddRecExpr *SrcAddRec = dyn_cast<SCEVAddRecExpr>(Src); in testRDIV()
2193 const SCEVAddRecExpr *DstAddRec = dyn_cast<SCEVAddRecExpr>(Dst); in testRDIV()
2203 if (const SCEVAddRecExpr *tmpAddRec = in testRDIV()
2204 dyn_cast<SCEVAddRecExpr>(SrcAddRec->getStart())) { in testRDIV()
2216 if (const SCEVAddRecExpr *tmpAddRec = in testRDIV()
2217 dyn_cast<SCEVAddRecExpr>(DstAddRec->getStart())) { in testRDIV()
[all …]
DScalarEvolutionAliasAnalysis.cpp97 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in GetBaseValue()
DScalarEvolutionNormalization.cpp107 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in TransformImpl()
DLoopAccessAnalysis.cpp133 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Sc); in insert()
527 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev); in hasComputableBounds()
775 static bool isNoWrapAddRec(Value *Ptr, const SCEVAddRecExpr *AR, in isNoWrapAddRec()
814 if (auto *OpAR = dyn_cast<SCEVAddRecExpr>(OpScev)) in isNoWrapAddRec()
837 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PtrScev); in isStridedPtr()
DVectorUtils.cpp310 const SCEVAddRecExpr *S = dyn_cast<SCEVAddRecExpr>(V); in getStrideFromPointer()
/external/llvm/lib/Transforms/Scalar/
DLoopIdiomRecognize.cpp127 Instruction *TheStore, const SCEVAddRecExpr *Ev,
130 const SCEVAddRecExpr *StoreEv,
254 static unsigned getStoreStride(const SCEVAddRecExpr *StoreEv) { in getStoreStride()
316 const SCEVAddRecExpr *StoreEv = in isLegalStore()
317 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in isLegalStore()
392 const SCEVAddRecExpr *StoreEv = cast<SCEVAddRecExpr>(SE->getSCEV(StorePtr)); in processLoopStore()
425 const SCEVAddRecExpr *Ev = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(Pointer)); in processLoopMemSet()
497 Value *StoredVal, Instruction *TheStore, const SCEVAddRecExpr *Ev, in processLoopStridedStore()
612 StoreInst *SI, unsigned StoreSize, const SCEVAddRecExpr *StoreEv, in processLoopStoreOfLoopLoad()
626 const SCEVAddRecExpr *LoadEv = in processLoopStoreOfLoopLoad()
[all …]
DIndVarSimplify.cpp896 Instruction *cloneIVUser(NarrowIVDefUse DU, const SCEVAddRecExpr *WideAR);
898 const SCEVAddRecExpr *WideAR);
901 const SCEVAddRecExpr *getWideRecurrence(Instruction *NarrowUse);
903 const SCEVAddRecExpr* getExtendedOperandRecurrence(NarrowIVDefUse DU);
945 const SCEVAddRecExpr *WideAR) { in cloneIVUser()
996 const SCEVAddRecExpr *WideAR) { in cloneArithmeticIVUser()
1103 const SCEVAddRecExpr* WidenIV::getExtendedOperandRecurrence(NarrowIVDefUse DU) { in getExtendedOperandRecurrence()
1142 const SCEVAddRecExpr *AddRec = in getExtendedOperandRecurrence()
1143 dyn_cast<SCEVAddRecExpr>(getSCEVByOpCode(lhs, rhs, OpCode)); in getExtendedOperandRecurrence()
1154 const SCEVAddRecExpr *WidenIV::getWideRecurrence(Instruction *NarrowUse) { in getWideRecurrence()
[all …]
DInductiveRangeCheckElimination.cpp193 const SCEVAddRecExpr *IndVar,
416 const SCEVAddRecExpr *IndexAddRec = dyn_cast<SCEVAddRecExpr>(IndexSCEV); in create()
706 if (!isa<SCEVAddRecExpr>(LeftSCEV)) { in parseLoopStructure()
707 if (isa<SCEVAddRecExpr>(RightSCEV)) { in parseLoopStructure()
717 auto HasNoSignedWrap = [&](const SCEVAddRecExpr *AR) { in parseLoopStructure()
725 const SCEVAddRecExpr *ExtendAfterOp = in parseLoopStructure()
726 dyn_cast<SCEVAddRecExpr>(SE.getSignExtendExpr(AR, WideTy)); in parseLoopStructure()
743 auto IsInductionVar = [&](const SCEVAddRecExpr *AR, bool &IsIncreasing) { in parseLoopStructure()
768 const SCEVAddRecExpr *IndVarNext = cast<SCEVAddRecExpr>(LeftSCEV); in parseLoopStructure()
1309 const SCEVAddRecExpr *IndVar, in computeSafeIterationSpace()
[all …]
DLoopStrengthReduce.cpp325 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) in DoInitialMatch()
408 while (Try < BaseRegsSize && !isa<SCEVAddRecExpr>(ScaledReg)) in canonicalize()
509 static bool isAddRecSExtable(const SCEVAddRecExpr *AR, ScalarEvolution &SE) { in isAddRecSExtable()
512 return isa<SCEVAddRecExpr>(SE.getSignExtendExpr(AR, WideTy)); in isAddRecSExtable()
569 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(LHS)) { in getExactSDiv()
636 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractImmediate()
662 } else if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in ExtractSymbol()
731 static bool isExistingPhi(const SCEVAddRecExpr *AR, ScalarEvolution &SE) { in isExistingPhi()
804 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S)) { in isHighCostExpansion()
929 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Reg)) { in RateRegister()
[all …]
DLoopRerollPass.cpp475 if (const SCEVAddRecExpr *PHISCEV = in collectPossibleIVs()
476 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(&*I))) { in collectPossibleIVs()
842 const auto *ADR = dyn_cast<SCEVAddRecExpr>(SE->getSCEV(V.BaseInst)); in findRoots()
1281 const SCEVAddRecExpr *RealIVSCEV = in replace()
1282 cast<SCEVAddRecExpr>(SE->getSCEV(DRS.BaseInst)); in replace()
1284 const SCEVAddRecExpr *H = cast<SCEVAddRecExpr>(SE->getAddRecExpr( in replace()
DLoopLoadElimination.cpp78 auto *LoadPtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(LoadPtr)); in isDependenceDistanceOfOne()
79 auto *StorePtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(StorePtr)); in isDependenceDistanceOfOne()
375 auto *PtrSCEV = cast<SCEVAddRecExpr>(PSE.getSCEV(Ptr)); in propagateStoredValueToLoadUsers()
DAlignmentFromAssumptions.cpp163 } else if (const SCEVAddRecExpr *DiffARSCEV = in getNewAlignment()
164 dyn_cast<SCEVAddRecExpr>(DiffSCEV)) { in getNewAlignment()
DLoopInterchange.cpp314 const SCEVAddRecExpr *AddRec = in getInductionVariable()
315 dyn_cast<SCEVAddRecExpr>(SE->getSCEV(PhiVar)); in getInductionVariable()
914 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(OperandVal); in getInstrOrderCost()
/external/llvm/include/llvm/Analysis/
DScalarEvolutionExpressions.h289 class SCEVAddRecExpr : public SCEVNAryExpr {
294 SCEVAddRecExpr(const FoldingSetNodeIDRef ID, in SCEVAddRecExpr() function
352 const SCEVAddRecExpr *getPostIncExpr(ScalarEvolution &SE) const { in getPostIncExpr()
353 return cast<SCEVAddRecExpr>(SE.getAddExpr(this, getStepRecurrence(SE))); in getPostIncExpr()
470 return ((SC*)this)->visitAddRecExpr((const SCEVAddRecExpr*)S); in visit()
603 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
682 const SCEV *visitAddRecExpr(const SCEVAddRecExpr *Expr) { in visitAddRecExpr()
693 const SCEVAddRecExpr *Rec = cast<SCEVAddRecExpr>(Res); in visitAddRecExpr()
DScalarEvolutionExpander.h284 Value *visitAddRecExpr(const SCEVAddRecExpr *S);
300 Value *expandAddRecExprLiterally(const SCEVAddRecExpr *);
301 PHINode *getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,
DScalarEvolution.h52 class SCEVAddRecExpr; variable
778 bool isMonotonicPredicateImpl(const SCEVAddRecExpr *LHS,
790 bool isMonotonicPredicate(const SCEVAddRecExpr *LHS,
/external/llvm/lib/Target/PowerPC/
DPPCLoopDataPrefetch.cpp156 SmallVector<std::pair<Instruction *, const SCEVAddRecExpr *>, 16> PrefLoads; in runOnLoop()
181 const SCEVAddRecExpr *LSCEVAddRec = dyn_cast<SCEVAddRecExpr>(LSCEV); in runOnLoop()
189 for (SmallVector<std::pair<Instruction *, const SCEVAddRecExpr *>, in runOnLoop()
DPPCLoopPreIncPrep.cpp214 if (const SCEVAddRecExpr *LARSCEV = dyn_cast<SCEVAddRecExpr>(LSCEV)) { in runOnLoop()
299 const SCEVAddRecExpr *BasePtrSCEV = in runOnLoop()
300 cast<SCEVAddRecExpr>(Buckets[i].BaseSCEV); in runOnLoop()
/external/llvm/test/Analysis/DependenceAnalysis/
DInvariant.ll4 ; SCEVAddRecExpr is created in addToCoefficient.
/external/llvm/unittests/Analysis/
DScalarEvolutionTest.cpp148 const SCEVAddRecExpr *Product = in TEST_F()
149 dyn_cast<SCEVAddRecExpr>(SE.getMulExpr(A_rec, B_rec)); in TEST_F()
/external/llvm/lib/Transforms/Utils/
DSimplifyIndVar.cpp506 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(S); in isSimpleIVUser()
DLoopUtils.cpp669 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(PhiScev); in isInductionPHI()

12