|
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.
1.8.13