LLVM: llvm::SCEVUnionPredicate Class Reference (original) (raw)

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](ScalarEvolution%5F8h%5Fsource.html)"

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
SCEVUnionPredicate getUnionWith (const SCEVPredicate *N, ScalarEvolution &SE) const
Returns a new SCEVUnionPredicate that is the union of this predicate and the given predicate N.
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.

classof()

getComplexity()

unsigned llvm::SCEVUnionPredicate::getComplexity ( ) const inlineoverridevirtual

getPredicates()

getUnionWith()

implies()

isAlwaysTrue()

bool SCEVUnionPredicate::isAlwaysTrue ( ) const overridevirtual

print()


The documentation for this class was generated from the following files: