LLVM 22.0.0git
|
This class represents a composition of other SCEV predicates, and is the class that most clients will interact with. More...
#include "llvm/Analysis/ScalarEvolution.h"
Public Member Functions | |
SCEVUnionPredicate (ArrayRef< const SCEVPredicate * > Preds, ScalarEvolution &SE) | |
Union predicates don't get cached so create a dummy set ID for it. | |
ArrayRef< const SCEVPredicate * > | getPredicates () const |
bool | isAlwaysTrue () const override |
Implementation of the SCEVPredicate interface. | |
bool | implies (const SCEVPredicate *N, ScalarEvolution &SE) const override |
Returns true if this predicate implies N . | |
void | print (raw_ostream &OS, unsigned Depth) const override |
Prints a textual representation of this predicate with an indentation of Depth . | |
unsigned | getComplexity () const override |
We estimate the complexity of a union predicate as the size number of predicates in the union. | |
Public Member Functions inherited from llvm::SCEVPredicate | |
LLVM_ABI | SCEVPredicate (const FoldingSetNodeIDRef ID, SCEVPredicateKind Kind) |
SCEV predicates. | |
SCEVPredicateKind | getKind () const |
Public Member Functions inherited from llvm::FoldingSetBase::Node | |
Node ()=default | |
void * | getNextInBucket () const |
void | SetNextInBucket (void *N) |
Static Public Member Functions | |
static bool | classof (const SCEVPredicate *P) |
Methods for support type inquiry through isa, cast, and dyn_cast: |
Additional Inherited Members | |
Public Types inherited from llvm::SCEVPredicate | |
enum | SCEVPredicateKind { P_Union , P_Compare , P_Wrap } |
Protected Member Functions inherited from llvm::SCEVPredicate | |
~SCEVPredicate ()=default | |
SCEVPredicate (const SCEVPredicate &)=default | |
SCEVPredicate & | operator= (const SCEVPredicate &)=default |
Protected Attributes inherited from llvm::SCEVPredicate | |
SCEVPredicateKind | Kind |
This class represents a composition of other SCEV predicates, and is the class that most clients will interact with.
This is equivalent to a logical "AND" of all the predicates in the union.
NB! Unlike other SCEVPredicate sub-classes this class does not live in the ScalarEvolution::Preds folding set. This is why the add
function is sound.
Definition at line 413 of file ScalarEvolution.h.
SCEVUnionPredicate::SCEVUnionPredicate | ( | ArrayRef< const SCEVPredicate * > | Preds, |
ScalarEvolution & | SE ) |
Union predicates don't get cached so create a dummy set ID for it.
Definition at line 15172 of file ScalarEvolution.cpp.
References P, llvm::SCEVPredicate::P_Union, and llvm::SCEVPredicate::SCEVPredicate().
|
inlinestatic |
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 440 of file ScalarEvolution.h.
References P, llvm::SCEVPredicate::P_Union, and llvm::SCEVPredicate::SCEVPredicate().
|
inlineoverridevirtual |
We estimate the complexity of a union predicate as the size number of predicates in the union.
Reimplemented from llvm::SCEVPredicate.
Definition at line 437 of file ScalarEvolution.h.
|
inline |
Definition at line 428 of file ScalarEvolution.h.
|
overridevirtual |
Returns true if this predicate implies N
.
Implements llvm::SCEVPredicate.
Definition at line 15184 of file ScalarEvolution.cpp.
References llvm::all_of(), llvm::any_of(), llvm::dyn_cast(), I, N, and llvm::SCEVPredicate::SCEVPredicate().
|
overridevirtual |
Implementation of the SCEVPredicate interface.
Implements llvm::SCEVPredicate.
Definition at line 15179 of file ScalarEvolution.cpp.
References llvm::all_of(), I, and llvm::SCEVPredicate::SCEVPredicate().
Referenced by dumpExampleDependence().
|
overridevirtual |
Prints a textual representation of this predicate with an indentation of Depth
.
Implements llvm::SCEVPredicate.
Definition at line 15195 of file ScalarEvolution.cpp.
References llvm::Depth.
Referenced by dumpExampleDependence().