reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
265 class SCEVEqualPredicate final : public SCEVPredicate { 302 class SCEVWrapPredicate final : public SCEVPredicate { 397 class SCEVUnionPredicate final : public SCEVPredicate {
221 static void Profile(const T &X, FoldingSetNodeID &ID) { 224 static void Profile(T &X, FoldingSetNodeID &ID) { 232 static inline bool Equals(T &X, const FoldingSetNodeID &ID, unsigned IDHash, 240 static inline unsigned ComputeHash(T &X, FoldingSetNodeID &TempID); 410 using iterator = FoldingSetIterator<T>; 415 using const_iterator = FoldingSetIterator<const T>; 420 using bucket_iterator = FoldingSetBucketIterator<T>; 432 bool RemoveNode(T *N) { return FoldingSetBase::RemoveNode(N); } 437 T *GetOrInsertNode(T *N) { 437 T *GetOrInsertNode(T *N) { 444 T *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos) { 451 void InsertNode(T *N, void *InsertPos) { 457 void InsertNode(T *N) { 473 template <class T> class FoldingSet final : public FoldingSetImpl<T> { 474 using Super = FoldingSetImpl<T>; 480 T *TN = static_cast<T *>(N); 481 FoldingSetTrait<T>::Profile(*TN, ID); 488 T *TN = static_cast<T *>(N); 489 return FoldingSetTrait<T>::Equals(*TN, ID, IDHash, TempID); 495 T *TN = static_cast<T *>(N); 496 return FoldingSetTrait<T>::ComputeHash(*TN, TempID);include/llvm/Analysis/ScalarEvolution.h
211 SCEVPredicate(const SCEVPredicate &) = default; 212 SCEVPredicate &operator=(const SCEVPredicate &) = default; 212 SCEVPredicate &operator=(const SCEVPredicate &) = default; 228 virtual bool implies(const SCEVPredicate *N) const = 0; 239 inline raw_ostream &operator<<(raw_ostream &OS, const SCEVPredicate &P) { 247 struct FoldingSetTrait<SCEVPredicate> : DefaultFoldingSetTrait<SCEVPredicate> { 248 static void Profile(const SCEVPredicate &X, FoldingSetNodeID &ID) { 252 static bool Equals(const SCEVPredicate &X, const FoldingSetNodeID &ID, 257 static unsigned ComputeHash(const SCEVPredicate &X, 265 class SCEVEqualPredicate final : public SCEVPredicate { 275 bool implies(const SCEVPredicate *N) const override; 287 static bool classof(const SCEVPredicate *P) { 302 class SCEVWrapPredicate final : public SCEVPredicate { 381 bool implies(const SCEVPredicate *N) const override; 386 static bool classof(const SCEVPredicate *P) { 397 class SCEVUnionPredicate final : public SCEVPredicate { 400 DenseMap<const SCEV *, SmallVector<const SCEVPredicate *, 4>>; 403 SmallVector<const SCEVPredicate *, 16> Preds; 411 const SmallVectorImpl<const SCEVPredicate *> &getPredicates() const { 416 void add(const SCEVPredicate *N); 420 ArrayRef<const SCEVPredicate *> getPredicatesForExpr(const SCEV *Expr); 424 bool implies(const SCEVPredicate *N) const override; 433 static bool classof(const SCEVPredicate *P) { 564 Optional<std::pair<const SCEV *, SmallVector<const SCEVPredicate *, 3>>> 1075 const SCEVPredicate *getEqualPredicate(const SCEV *LHS, const SCEV *RHS); 1077 const SCEVPredicate * 1088 SmallPtrSetImpl<const SCEVPredicate *> &Preds); 1209 SmallPtrSet<const SCEVPredicate *, 4> Predicates; 1211 void addPredicate(const SCEVPredicate *P) { 1223 ArrayRef<const SmallPtrSetImpl<const SCEVPredicate *> *> PredSetList); 1226 const SmallPtrSetImpl<const SCEVPredicate *> &PredSet); 1824 Optional<std::pair<const SCEV *, SmallVector<const SCEVPredicate *, 3>>> 1893 FoldingSet<SCEVPredicate> UniquePreds; 1903 std::pair<const SCEV *, SmallVector<const SCEVPredicate *, 3>>> 1983 void addPredicate(const SCEVPredicate &Pred);include/llvm/Analysis/ScalarEvolutionExpander.h
219 Value *expandCodeForPredicate(const SCEVPredicate *Pred, Instruction *Loc);
include/llvm/Support/Casting.h57 static inline bool doit(const From &Val) { 104 static inline bool doit(const From *Val) { 106 return isa_impl<To, From>::doit(*Val);include/llvm/Support/PointerLikeTypeTraits.h
56 static inline void *getAsVoidPointer(T *P) { return P; } 57 static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); } 59 enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value }; 91 typedef PointerLikeTypeTraits<T *> NonConst; 93 static inline const void *getAsVoidPointer(const T *P) { 96 static inline const T *getFromVoidPointer(const void *P) {lib/Analysis/ScalarEvolution.cpp
4683 Optional<std::pair<const SCEV *, SmallVector<const SCEVPredicate *, 3>>> 4685 SmallVector<const SCEVPredicate *, 3> Predicates; 4820 const SCEVPredicate *AddRecPred = getWrapPredicate(AR, AddedFlags); 4872 const SCEVPredicate *Pred = getEqualPredicate(Expr, ExtendedExpr); 4887 std::pair<const SCEV *, SmallVector<const SCEVPredicate *, 3>> PredRewrite = 4894 Optional<std::pair<const SCEV *, SmallVector<const SCEVPredicate *, 3>>> 4904 std::pair<const SCEV *, SmallVector<const SCEVPredicate *, 3>> Rewrite = 4916 Optional<std::pair<const SCEV *, SmallVector<const SCEVPredicate *, 3>>> 4921 SmallVector<const SCEVPredicate *, 3> Predicates; 6992 ArrayRef<const SmallPtrSetImpl<const SCEVPredicate *> *> PredSetList) 7007 const SmallPtrSetImpl<const SCEVPredicate *> &PredSet) 8710 SmallPtrSet<const SCEVPredicate *, 4> Predicates; 10585 SmallPtrSet<const SCEVPredicate *, 4> Predicates; 10726 SmallPtrSet<const SCEVPredicate *, 4> Predicates; 12064 const SCEVPredicate *ScalarEvolution::getEqualPredicate(const SCEV *LHS, 12070 ID.AddInteger(SCEVPredicate::P_Equal); 12074 if (const auto *S = UniquePreds.FindNodeOrInsertPos(ID, IP)) 12082 const SCEVPredicate *ScalarEvolution::getWrapPredicate( 12087 ID.AddInteger(SCEVPredicate::P_Wrap); 12091 if (const auto *S = UniquePreds.FindNodeOrInsertPos(ID, IP)) 12113 SmallPtrSetImpl<const SCEVPredicate *> *NewPreds, 12164 SmallPtrSetImpl<const SCEVPredicate *> *NewPreds, 12168 bool addOverflowAssumption(const SCEVPredicate *P) { 12192 Optional<std::pair<const SCEV *, SmallVector<const SCEVPredicate *, 3>>> 12209 SmallPtrSetImpl<const SCEVPredicate *> *NewPreds; 12223 SmallPtrSetImpl<const SCEVPredicate *> &Preds) { 12224 SmallPtrSet<const SCEVPredicate *, 4> TransformPreds; 12251 bool SCEVEqualPredicate::implies(const SCEVPredicate *N) const { 12275 bool SCEVWrapPredicate::implies(const SCEVPredicate *N) const { 12330 ArrayRef<const SCEVPredicate *> 12338 bool SCEVUnionPredicate::implies(const SCEVPredicate *N) const { 12359 void SCEVUnionPredicate::add(const SCEVPredicate *N) { 12409 void PredicatedScalarEvolution::addPredicate(const SCEVPredicate &Pred) { 12464 SmallPtrSet<const SCEVPredicate *, 4> NewPreds;lib/Analysis/ScalarEvolutionExpander.cpp
2212 Value *SCEVExpander::expandCodeForPredicate(const SCEVPredicate *Pred, 2216 case SCEVPredicate::P_Union: 2218 case SCEVPredicate::P_Equal: 2220 case SCEVPredicate::P_Wrap: {