/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Analysis/ |
D | ScalarEvolution.h | 76 class SCEV : public FoldingSetNode { 77 friend struct FoldingSetTrait<SCEV>; 121 explicit SCEV(const FoldingSetNodeIDRef ID, unsigned SCEVTy, 124 SCEV(const SCEV &) = delete; 125 SCEV &operator=(const SCEV &) = delete; 167 template <> struct FoldingSetTrait<SCEV> : DefaultFoldingSetTrait<SCEV> { 168 static void Profile(const SCEV &X, FoldingSetNodeID &ID) { ID = X.FastID; } 170 static bool Equals(const SCEV &X, const FoldingSetNodeID &ID, unsigned IDHash, 175 static unsigned ComputeHash(const SCEV &X, FoldingSetNodeID &TempID) { 180 inline raw_ostream &operator<<(raw_ostream &OS, const SCEV &S) { [all …]
|
D | DependenceAnalysis.h | 52 class SCEV; variable 101 const SCEV *Distance; // NULL implies no distance available. 161 virtual const SCEV *getDistance(unsigned Level) const { return nullptr; } in getDistance() 242 const SCEV *getDistance(unsigned Level) const override; 331 const SCEV *getSplitIteration(const Dependence &Dep, unsigned Level); 345 const SCEV *Src; 346 const SCEV *Dst; 354 const SCEV *Coeff; 355 const SCEV *PosPart; 356 const SCEV *NegPart; [all …]
|
D | ScalarEvolutionExpressions.h | 47 class SCEVConstant : public SCEV { 53 SCEV(ID, scConstant, 1), V(v) {} in SCEVConstant() 62 static bool classof(const SCEV *S) { in classof() 67 static unsigned short computeExpressionSize(ArrayRef<const SCEV *> Args) { in computeExpressionSize() 75 class SCEVCastExpr : public SCEV { 77 const SCEV *Op; 81 unsigned SCEVTy, const SCEV *op, Type *ty); 84 const SCEV *getOperand() const { return Op; } in getOperand() 88 static bool classof(const SCEV *S) { in classof() 101 const SCEV *op, Type *ty); [all …]
|
D | ScalarEvolutionExpander.h | 31 bool isSafeToExpand(const SCEV *S, ScalarEvolution &SE); 36 bool isSafeToExpandAt(const SCEV *S, const Instruction *InsertionPoint, 53 DenseMap<std::pair<const SCEV *, Instruction *>, TrackingVH<Value>> 61 DenseMap<const SCEV *, const Loop *> RelevantLoops; 180 bool isHighCostExpansion(const SCEV *Expr, Loop *L, 182 SmallPtrSet<const SCEV *, 8> Processed; 207 Value *expandCodeFor(const SCEV *SH, Type *Ty, Instruction *I); 213 Value *expandCodeFor(const SCEV *SH, Type *Ty = nullptr); 303 Value *getExactExistingExpansion(const SCEV *S, const Instruction *At, 319 getRelatedExistingExpansion(const SCEV *S, const Instruction *At, Loop *L); [all …]
|
D | ScalarEvolutionNormalization.h | 46 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,
|
D | LoopCacheAnalysis.h | 53 const SCEV *getBasePointer() const { return BasePointer; } in getBasePointer() 55 const SCEV *getSubscript(unsigned SubNum) const { in getSubscript() 59 const SCEV *getFirstSubscript() const { in getFirstSubscript() 63 const SCEV *getLastSubscript() const { in getLastSubscript() 108 const SCEV *getLastCoefficient() const; 112 bool isCoeffForLoopZeroOrInvariant(const SCEV &Subscript, 117 bool isSimpleAddRecurrence(const SCEV &Subscript, const Loop &L) const; 131 const SCEV *BasePointer = nullptr; 134 SmallVector<const SCEV *, 3> Subscripts; 137 SmallVector<const SCEV *, 3> Sizes;
|
D | LoopAccessAnalysis.h | 35 class SCEV; variable 341 const SCEV *Start; 344 const SCEV *End; 353 const SCEV *Expr; 355 PointerInfo(Value *PointerValue, const SCEV *Start, const SCEV *End, in PointerInfo() 357 const SCEV *Expr) in PointerInfo() 408 const SCEV *High; 411 const SCEV *Low; 679 const SCEV *replaceSymbolicStrideSCEV(PredicatedScalarEvolution &PSE,
|
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Analysis/ |
D | ScalarEvolution.cpp | 239 LLVM_DUMP_METHOD void SCEV::dump() const { in dump() 245 void SCEV::print(raw_ostream &OS) const { in print() 252 const SCEV *Op = Trunc->getOperand(); in print() 259 const SCEV *Op = ZExt->getOperand(); in print() 266 const SCEV *Op = SExt->getOperand(); in print() 363 Type *SCEV::getType() const { in getType() 390 bool SCEV::isZero() const { in isZero() 396 bool SCEV::isOne() const { in isOne() 402 bool SCEV::isAllOnesValue() const { in isAllOnesValue() 408 bool SCEV::isNonConstantNegative() const { in isNonConstantNegative() [all …]
|
D | DependenceAnalysis.cpp | 276 const SCEV *FullDependence::getDistance(unsigned Level) const { in getDistance() 319 const SCEV *DependenceInfo::Constraint::getX() const { in getX() 327 const SCEV *DependenceInfo::Constraint::getY() const { in getY() 335 const SCEV *DependenceInfo::Constraint::getA() const { in getA() 344 const SCEV *DependenceInfo::Constraint::getB() const { in getB() 353 const SCEV *DependenceInfo::Constraint::getC() const { in getC() 362 const SCEV *DependenceInfo::Constraint::getD() const { in getD() 375 void DependenceInfo::Constraint::setPoint(const SCEV *X, const SCEV *Y, in setPoint() 383 void DependenceInfo::Constraint::setLine(const SCEV *AA, const SCEV *BB, in setLine() 384 const SCEV *CC, const Loop *CurLoop) { in setLine() [all …]
|
D | LoopCacheAnalysis.cpp | 75 static bool isOneDimensionalArray(const SCEV &AccessFn, const SCEV &ElemSize, in isOneDimensionalArray() 84 const SCEV *Start = AR->getStart(); in isOneDimensionalArray() 85 const SCEV *Step = AR->getStepRecurrence(SE); in isOneDimensionalArray() 98 static const SCEV *computeTripCount(const Loop &L, ScalarEvolution &SE) { in computeTripCount() 99 const SCEV *BackedgeTakenCount = SE.getBackedgeTakenCount(&L); in computeTripCount() 119 for (const SCEV *Subscript : R.Subscripts) in operator <<() 123 for (const SCEV *Size : R.Sizes) in operator <<() 171 const SCEV *LastSubscript = getLastSubscript(); in hasSpacialReuse() 172 const SCEV *OtherLastSubscript = Other.getLastSubscript(); in hasSpacialReuse() 228 const SCEV *Distance = D->getDistance(Level); in hasTemporalReuse() [all …]
|
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()
|
D | ScalarEvolutionExpander.cpp | 171 SCEV::NoWrapFlags Flags, bool IsSafeToHoist) { in InsertBinop() 193 if (I->hasNoSignedWrap() != (Flags & SCEV::FlagNSW)) in InsertBinop() 195 if (I->hasNoUnsignedWrap() != (Flags & SCEV::FlagNUW)) in InsertBinop() 230 if (Flags & SCEV::FlagNUW) in InsertBinop() 232 if (Flags & SCEV::FlagNSW) in InsertBinop() 243 static bool FactorOutConstant(const SCEV *&S, const SCEV *&Remainder, in FactorOutConstant() 244 const SCEV *Factor, ScalarEvolution &SE, in FactorOutConstant() 269 const SCEV *Div = SE.getConstant(CI); in FactorOutConstant() 286 SmallVector<const SCEV *, 4> NewMulOps(M->op_begin(), M->op_end()); in FactorOutConstant() 295 const SCEV *Step = A->getStepRecurrence(SE); in FactorOutConstant() [all …]
|
D | LoopAccessAnalysis.cpp | 145 const SCEV *llvm::replaceSymbolicStrideSCEV(PredicatedScalarEvolution &PSE, in replaceSymbolicStrideSCEV() 148 const SCEV *OrigSCEV = PSE.getSCEV(Ptr); in replaceSymbolicStrideSCEV() 195 const SCEV *Sc = replaceSymbolicStrideSCEV(PSE, Strides, Ptr); in insert() 198 const SCEV *ScStart; in insert() 199 const SCEV *ScEnd; in insert() 206 const SCEV *Ex = PSE.getBackedgeTakenCount(); in insert() 210 const SCEV *Step = AR->getStepRecurrence(*SE); in insert() 227 const SCEV *EltSizeSCEV = SE->getConstant(ScEnd->getType(), EltSize); in insert() 268 static const SCEV *getMinFromExprs(const SCEV *I, const SCEV *J, in getMinFromExprs() 270 const SCEV *Diff = SE->getMinusSCEV(J, I); in getMinFromExprs() [all …]
|
D | ScalarEvolutionAliasAnalysis.cpp | 34 const SCEV *AS = SE.getSCEV(const_cast<Value *>(LocA.Ptr)); in alias() 35 const SCEV *BS = SE.getSCEV(const_cast<Value *>(LocB.Ptr)); in alias() 54 const SCEV *BA = SE.getMinusSCEV(BS, AS); in alias() 68 const SCEV *AB = SE.getMinusSCEV(AS, BS); in alias() 100 Value *SCEVAAResult::GetBaseValue(const SCEV *S) { in GetBaseValue() 107 const SCEV *Last = A->getOperand(A->getNumOperands() - 1); in GetBaseValue()
|
D | IVUsers.cpp | 60 static bool isInteresting(const SCEV *S, const Instruction *I, const Loop *L, in isInteresting() 199 const SCEV *ISE = SE->getSCEV(I); in AddUsersImpl() 254 const SCEV *OriginalISE = ISE; in AddUsersImpl() 271 const SCEV *DenormalizedISE = in AddUsersImpl() 385 const SCEV *IVUsers::getReplacementExpr(const IVStrideUse &IU) const { in getReplacementExpr() 390 const SCEV *IVUsers::getExpr(const IVStrideUse &IU) const { in getExpr() 395 static const SCEVAddRecExpr *findAddRecForLoop(const SCEV *S, const Loop *L) { in findAddRecForLoop() 412 const SCEV *IVUsers::getStride(const IVStrideUse &IU, const Loop *L) const { in getStride()
|
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Scalar/ |
D | LoopStrengthReduce.cpp | 235 using RegUsesTy = DenseMap<const SCEV *, RegSortData>; 238 SmallVector<const SCEV *, 16> RegSequence; 241 void countRegister(const SCEV *Reg, size_t LUIdx); 242 void dropRegister(const SCEV *Reg, size_t LUIdx); 245 bool isRegUsedByUsesOtherThan(const SCEV *Reg, size_t LUIdx) const; 247 const SmallBitVector &getUsedByIndices(const SCEV *Reg) const; 251 using iterator = SmallVectorImpl<const SCEV *>::iterator; 252 using const_iterator = SmallVectorImpl<const SCEV *>::const_iterator; 263 RegUseTracker::countRegister(const SCEV *Reg, size_t LUIdx) { in countRegister() 274 RegUseTracker::dropRegister(const SCEV *Reg, size_t LUIdx) { in dropRegister() [all …]
|
D | InductiveRangeCheckElimination.cpp | 142 const SCEV *Begin = nullptr; 143 const SCEV *Step = nullptr; 144 const SCEV *End = nullptr; 158 const SCEV *getBegin() const { return Begin; } in getBegin() 159 const SCEV *getStep() const { return Step; } in getStep() 160 const SCEV *getEnd() const { return End; } in getEnd() 187 const SCEV *Begin; 188 const SCEV *End; 191 Range(const SCEV *Begin, const SCEV *End) : Begin(Begin), End(End) { in Range() 196 const SCEV *getBegin() const { return Begin; } in getBegin() [all …]
|
D | AlignmentFromAssumptions.cpp | 93 static unsigned getNewAlignmentDiff(const SCEV *DiffSCEV, in getNewAlignmentDiff() 94 const SCEV *AlignSCEV, in getNewAlignmentDiff() 97 const SCEV *DiffUnitsSCEV = SE->getURemExpr(DiffSCEV, AlignSCEV); in getNewAlignmentDiff() 126 static unsigned getNewAlignment(const SCEV *AASCEV, const SCEV *AlignSCEV, in getNewAlignment() 127 const SCEV *OffSCEV, Value *Ptr, in getNewAlignment() 129 const SCEV *PtrSCEV = SE->getSCEV(Ptr); in getNewAlignment() 130 const SCEV *DiffSCEV = SE->getMinusSCEV(PtrSCEV, AASCEV); in getNewAlignment() 158 const SCEV *DiffStartSCEV = DiffARSCEV->getStart(); in getNewAlignment() 159 const SCEV *DiffIncSCEV = DiffARSCEV->getStepRecurrence(*SE); in getNewAlignment() 200 const SCEV *&AlignSCEV, in extractAlignmentInfo() [all …]
|
D | LoopPredication.cpp | 241 const SCEV *Limit; 243 const SCEV *Limit) in LoopICmp() 264 bool isSupportedStep(const SCEV* Step); 277 Instruction *findInsertPt(Instruction *User, ArrayRef<const SCEV*> Ops); 282 bool isLoopInvariantValue(const SCEV* S); 285 ICmpInst::Predicate Pred, const SCEV *LHS, 286 const SCEV *RHS); 378 const SCEV *LHSS = SE->getSCEV(LHS); in parseLoopICmp() 381 const SCEV *RHSS = SE->getSCEV(RHS); in parseLoopICmp() 401 ICmpInst::Predicate Pred, const SCEV *LHS, in expandCheck() [all …]
|
D | IndVarSimplify.cpp | 164 const SCEV *ExitCount, 219 const SCEV *FromBase = SE->getPointerBase(SE->getSCEV(FromPtr)); in isValidRewrite() 220 const SCEV *ToBase = SE->getPointerBase(SE->getSCEV(ToPtr)); in isValidRewrite() 644 const SCEV *ExitValue = SE->getSCEVAtScope(Inst, L->getParentLoop()); in rewriteLoopExitValues() 652 const SCEV *ExitCount = SE->getExitCount(L, PN->getIncomingBlock(i)); in rewriteLoopExitValues() 984 const SCEV *WideIncExpr = nullptr; 1057 const SCEV *getSCEVByOpCode(const SCEV *LHS, const SCEV *RHS, 1160 const SCEV *WideLHS; in cloneArithmeticIVUser() 1161 const SCEV *WideRHS; in cloneArithmeticIVUser() 1163 auto GetExtend = [this, SignExt](const SCEV *S, Type *Ty) { in cloneArithmeticIVUser() [all …]
|
D | NaryReassociate.cpp | 238 const SCEV *OldSCEV = SE->getSCEV(&*I); in doOneIteration() 258 const SCEV *NewSCEV = SE->getSCEV(&*I); in doOneIteration() 372 SmallVector<const SCEV *, 4> IndexExprs; in tryReassociateGEPAtIndex() 387 const SCEV *CandidateExpr = SE->getGEPExpr(cast<GEPOperator>(GEP), in tryReassociateGEPAtIndex() 457 const SCEV *AExpr = SE->getSCEV(A), *BExpr = SE->getSCEV(B); in tryReassociateBinaryOp() 458 const SCEV *RHSExpr = SE->getSCEV(RHS); in tryReassociateBinaryOp() 473 Instruction *NaryReassociatePass::tryReassociatedBinaryOp(const SCEV *LHSExpr, in tryReassociatedBinaryOp() 510 const SCEV *NaryReassociatePass::getBinarySCEV(BinaryOperator *I, in getBinarySCEV() 511 const SCEV *LHS, in getBinarySCEV() 512 const SCEV *RHS) { in getBinarySCEV() [all …]
|
D | LoopIdiomRecognize.cpp | 164 bool runOnLoopBlock(BasicBlock *BB, const SCEV *BECount, 170 bool processLoopStores(SmallVectorImpl<StoreInst *> &SL, const SCEV *BECount, 172 bool processLoopMemSet(MemSetInst *MSI, const SCEV *BECount); 178 const SCEVAddRecExpr *Ev, const SCEV *BECount, 180 bool processLoopStoreOfLoopLoad(StoreInst *SI, const SCEV *BECount); 323 const SCEV *BECount = SE->getBackedgeTakenCount(CurLoop); in runOnCountableLoop() 556 BasicBlock *BB, const SCEV *BECount, in runOnLoopBlock() 604 const SCEV *BECount, ForMemset For) { in processLoopStores() 748 const SCEV *BECount) { in processLoopMemSet() 800 const SCEV *BECount, unsigned StoreSize, in mayLoopAccessLocation() [all …]
|
D | StraightLineStrengthReduce.cpp | 111 Candidate(Kind CT, const SCEV *B, ConstantInt *Idx, Value *S, in Candidate() 117 const SCEV *Base = nullptr; 205 void allocateCandidatesAndFindBasisForGEP(const SCEV *B, ConstantInt *Idx, 211 void allocateCandidatesAndFindBasis(Candidate::Kind CT, const SCEV *B, 221 void factorArrayIndex(Value *ArrayIdx, const SCEV *Base, uint64_t ElementSize, 283 static bool isAddFoldable(const SCEV *Base, ConstantInt *Index, Value *Stride, in isAddFoldable() 337 Candidate::Kind CT, const SCEV *B, ConstantInt *Idx, Value *S, in allocateCandidatesAndFindBasis() 471 const SCEV *B, ConstantInt *Idx, Value *S, uint64_t ElementSize, in allocateCandidatesAndFindBasisForGEP() 484 const SCEV *Base, in factorArrayIndex() 524 SmallVector<const SCEV *, 4> IndexExprs; in allocateCandidatesAndFindBasisForGEP() [all …]
|
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Utils/ |
D | SimplifyIndVar.cpp | 111 const SCEV *FoldedExpr = nullptr; in foldIVUser() 189 const SCEV *S = SE->getSCEVAtScope(ICmp->getOperand(IVOperIdx), ICmpLoop); in makeIVComparisonInvariant() 190 const SCEV *X = SE->getSCEVAtScope(ICmp->getOperand(1 - IVOperIdx), ICmpLoop); in makeIVComparisonInvariant() 193 const SCEV *InvariantLHS, *InvariantRHS; in makeIVComparisonInvariant() 206 SmallDenseMap<const SCEV*, Value*> CheapExpansions; in makeIVComparisonInvariant() 216 const SCEV *IncomingS = SE->getSCEV(Incoming); in makeIVComparisonInvariant() 259 const SCEV *S = SE->getSCEVAtScope(ICmp->getOperand(IVOperIdx), ICmpLoop); in eliminateIVComparison() 260 const SCEV *X = SE->getSCEVAtScope(ICmp->getOperand(1 - IVOperIdx), ICmpLoop); in eliminateIVComparison() 367 const SCEV *N = SE->getSCEV(NValue); in simplifyIVRemainder() 379 const SCEV *D = SE->getSCEV(DValue); in simplifyIVRemainder() [all …]
|
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Transforms/Scalar/ |
D | NaryReassociate.h | 96 class SCEV; variable 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, 183 DenseMap<const SCEV *, SmallVector<WeakTrackingVH, 2>> SeenExprs;
|