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().