|
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 15173 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 15185 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 15180 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 15196 of file ScalarEvolution.cpp.
References llvm::Depth.
Referenced by dumpExampleDependence().