LLVM 20.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 | |
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 214 of file ScalarEvolution.h.
Enumerator | |
---|---|
P_Union | |
P_Compare | |
P_Wrap |
Definition at line 222 of file ScalarEvolution.h.
|
protecteddefault |
|
protecteddefault |
SCEVPredicate::SCEVPredicate | ( | const FoldingSetNodeIDRef | ID, |
SCEVPredicateKind | Kind | ||
) |
SCEV predicates.
Definition at line 14925 of file ScalarEvolution.cpp.
|
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 237 of file ScalarEvolution.h.
Referenced by llvm::LoopVectorizationLegality::canVectorize().
|
inline |
Definition at line 233 of file ScalarEvolution.h.
References Kind.
Referenced by llvm::SCEVExpander::expandCodeForPredicate().
|
pure virtual |
Returns true if this predicate implies N
.
Implemented in llvm::SCEVComparePredicate, llvm::SCEVWrapPredicate, and llvm::SCEVUnionPredicate.
|
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::SCEVWrapPredicate, and llvm::SCEVUnionPredicate.
Referenced by llvm::LoopVectorizationCostModel::runtimeChecksRequired().
|
protecteddefault |
|
pure virtual |
Prints a textual representation of this predicate with an indentation of Depth
.
Implemented in llvm::SCEVUnionPredicate, llvm::SCEVComparePredicate, and llvm::SCEVWrapPredicate.
Referenced by llvm::SCEVUnionPredicate::print(), and llvm::LoopAccessInfo::print().
|
friend |
Definition at line 209 of file ScalarEvolution.h.
|
protected |
Definition at line 225 of file ScalarEvolution.h.
Referenced by getKind().