|
LLVM 22.0.0git
|
This class represents an assumption made using SCEV expressions which can be checked at run-time. More...
#include "llvm/Analysis/ScalarEvolution.h"
Public Types | |
| enum | SCEVPredicateKind { P_Union , P_Compare , P_Wrap } |
Public Member Functions | |
| LLVM_ABI | SCEVPredicate (const FoldingSetNodeIDRef ID, SCEVPredicateKind Kind) |
| SCEV predicates. | |
| SCEVPredicateKind | getKind () const |
| virtual unsigned | getComplexity () const |
| Returns the estimated complexity of this predicate. | |
| virtual bool | isAlwaysTrue () const =0 |
| Returns true if the predicate is always true. | |
| virtual bool | implies (const SCEVPredicate *N, ScalarEvolution &SE) const =0 |
Returns true if this predicate implies N. | |
| virtual void | print (raw_ostream &OS, unsigned Depth=0) const =0 |
Prints a textual representation of this predicate with an indentation of Depth. | |
| Public Member Functions inherited from llvm::FoldingSetBase::Node | |
| Node ()=default | |
| void * | getNextInBucket () const |
| void | SetNextInBucket (void *N) |
Protected Member Functions | |
| ~SCEVPredicate ()=default | |
| SCEVPredicate (const SCEVPredicate &)=default | |
| SCEVPredicate & | operator= (const SCEVPredicate &)=default |
Protected Attributes | |
| SCEVPredicateKind | Kind |
Friends | |
| struct | FoldingSetTrait< SCEVPredicate > |
This class represents an assumption made using SCEV expressions which can be checked at run-time.
Definition at line 215 of file ScalarEvolution.h.
| Enumerator | |
|---|---|
| P_Union | |
| P_Compare | |
| P_Wrap | |
Definition at line 223 of file ScalarEvolution.h.
|
protecteddefault |
|
protecteddefault |
References SCEVPredicate().
Referenced by llvm::SCEVComparePredicate::classof(), llvm::SCEVUnionPredicate::classof(), llvm::SCEVWrapPredicate::classof(), llvm::SCEVComparePredicate::implies(), implies(), llvm::SCEVUnionPredicate::implies(), llvm::SCEVWrapPredicate::implies(), llvm::SCEVUnionPredicate::isAlwaysTrue(), operator=(), llvm::SCEVComparePredicate::SCEVComparePredicate(), SCEVPredicate(), llvm::SCEVUnionPredicate::SCEVUnionPredicate(), and llvm::SCEVWrapPredicate::SCEVWrapPredicate().
| SCEVPredicate::SCEVPredicate | ( | const FoldingSetNodeIDRef | ID, |
| SCEVPredicateKind | Kind ) |
|
inlinevirtual |
Returns the estimated complexity of this predicate.
This is roughly measured in the number of run-time checks required.
Reimplemented in llvm::SCEVUnionPredicate.
Definition at line 238 of file ScalarEvolution.h.
|
inline |
Definition at line 234 of file ScalarEvolution.h.
References Kind.
|
pure virtual |
Returns true if this predicate implies N.
Implemented in llvm::SCEVComparePredicate, llvm::SCEVUnionPredicate, and llvm::SCEVWrapPredicate.
References N, and SCEVPredicate().
|
pure virtual |
Returns true if the predicate is always true.
This means that no assumptions were made and nothing needs to be checked at run-time.
Implemented in llvm::SCEVComparePredicate, llvm::SCEVUnionPredicate, and llvm::SCEVWrapPredicate.
|
protecteddefault |
References Kind, LLVM_ABI, and SCEVPredicate().
|
pure virtual |
Prints a textual representation of this predicate with an indentation of Depth.
Implemented in llvm::SCEVComparePredicate, llvm::SCEVUnionPredicate, and llvm::SCEVWrapPredicate.
References llvm::Depth.
|
friend |
Definition at line 210 of file ScalarEvolution.h.
References LLVM_ABI.
|
protected |
Definition at line 226 of file ScalarEvolution.h.
Referenced by getKind(), operator=(), and SCEVPredicate().