LLVM
8.0.1
|
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_Equal, P_Wrap } |
Public Member Functions | |
SCEVPredicate (const FoldingSetNodeIDRef ID, SCEVPredicateKind Kind) | |
SCEV predicates. More... | |
SCEVPredicateKind | getKind () const |
virtual unsigned | getComplexity () const |
Returns the estimated complexity of this predicate. More... | |
virtual bool | isAlwaysTrue () const =0 |
Returns true if the predicate is always true. More... | |
virtual bool | implies (const SCEVPredicate *N) const =0 |
Returns true if this predicate implies N . More... | |
virtual void | print (raw_ostream &OS, unsigned Depth=0) const =0 |
Prints a textual representation of this predicate with an indentation of Depth . More... | |
virtual const SCEV * | getExpr () const =0 |
Returns the SCEV to which this predicate applies, or nullptr if this is a SCEVUnionPredicate. More... | |
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 182 of file ScalarEvolution.h.
Enumerator | |
---|---|
P_Union | |
P_Equal | |
P_Wrap |
Definition at line 190 of file ScalarEvolution.h.
|
protecteddefault |
|
protecteddefault |
SCEVPredicate::SCEVPredicate | ( | const FoldingSetNodeIDRef | ID, |
SCEVPredicateKind | Kind | ||
) |
SCEV predicates.
Definition at line 12146 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 205 of file ScalarEvolution.h.
References llvm::Depth, llvm::HexagonMCInstrInfo::getExpr(), N, and llvm::SCEV::print().
Returns the SCEV to which this predicate applies, or nullptr if this is a SCEVUnionPredicate.
Implemented in llvm::SCEVUnionPredicate, llvm::SCEVWrapPredicate, and llvm::SCEVEqualPredicate.
Referenced by llvm::SCEVUnionPredicate::add(), and llvm::SCEVUnionPredicate::implies().
|
inline |
Definition at line 201 of file ScalarEvolution.h.
References Kind.
Referenced by llvm::SCEVEqualPredicate::classof(), llvm::SCEVWrapPredicate::classof(), llvm::SCEVUnionPredicate::classof(), and llvm::SCEVExpander::expandCodeForPredicate().
|
pure virtual |
Returns true if this predicate implies N
.
Implemented in llvm::SCEVUnionPredicate, llvm::SCEVWrapPredicate, and llvm::SCEVEqualPredicate.
Referenced by llvm::SCEVUnionPredicate::implies().
|
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::SCEVUnionPredicate, llvm::SCEVWrapPredicate, and llvm::SCEVEqualPredicate.
Referenced by llvm::SCEVUnionPredicate::isAlwaysTrue().
|
protecteddefault |
|
pure virtual |
Prints a textual representation of this predicate with an indentation of Depth
.
Implemented in llvm::SCEVUnionPredicate, llvm::SCEVWrapPredicate, and llvm::SCEVEqualPredicate.
Referenced by llvm::operator<<().
|
friend |
Definition at line 183 of file ScalarEvolution.h.
|
protected |
Definition at line 193 of file ScalarEvolution.h.