class SCEVUnionPredicate
Declaration
class SCEVUnionPredicate : public SCEVPredicate { /* full declaration omitted */ };
Description
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 \c add function is sound.
Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:397
Inherits from: SCEVPredicate
Member Variables
Inherited from SCEVPredicate:
Method Overview
- public SCEVUnionPredicate()
- public void add(const llvm::SCEVPredicate * N)
- public static bool classof(const llvm::SCEVPredicate * P)
- public unsigned int getComplexity() const
- public const llvm::SCEV * getExpr() const
- public const SmallVectorImpl<const llvm::SCEVPredicate *> & getPredicates() const
- public ArrayRef<const llvm::SCEVPredicate *> getPredicatesForExpr(const llvm::SCEV * Expr)
- public bool implies(const llvm::SCEVPredicate * N) const
- public bool isAlwaysTrue() const
- public void print(llvm::raw_ostream & OS, unsigned int Depth) const
Inherited from SCEVPredicate:
Inherited from FoldingSetBase::Node:
Methods
¶SCEVUnionPredicate()
SCEVUnionPredicate()
Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:409
¶void add(const llvm::SCEVPredicate* N)
void add(const llvm::SCEVPredicate* N)
Description
Adds a predicate to this union.
Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:416
Parameters
- const llvm::SCEVPredicate* N
¶static bool classof(const llvm::SCEVPredicate* P)
static bool classof(const llvm::SCEVPredicate* P)
Description
Methods for support type inquiry through isa, cast, and dyn_cast:
Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:433
Parameters
- const llvm::SCEVPredicate* P
¶unsigned int getComplexity() const
unsigned int getComplexity() const
Description
We estimate the complexity of a union predicate as the size number of predicates in the union.
Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:430
¶const llvm::SCEV* getExpr() const
const llvm::SCEV* getExpr() const
Description
Returns the SCEV to which this predicate applies, or nullptr if this is a SCEVUnionPredicate.
Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:426
¶const SmallVectorImpl<const llvm::SCEVPredicate*>&
getPredicates() const
const SmallVectorImpl<const llvm::SCEVPredicate*>&
getPredicates() const
Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:411
¶ArrayRef<const llvm::SCEVPredicate*>
getPredicatesForExpr(const llvm::SCEV* Expr)
ArrayRef<const llvm::SCEVPredicate*>
getPredicatesForExpr(const llvm::SCEV* Expr)
Description
Returns a reference to a vector containing all predicates which apply to\p Expr.
Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:420
Parameters
- const llvm::SCEV* Expr
¶bool implies(const llvm::SCEVPredicate* N) const
bool implies(const llvm::SCEVPredicate* N) const
Description
Returns true if this predicate implies \p N.
Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:424
Parameters
- const llvm::SCEVPredicate* N
¶bool isAlwaysTrue() const
bool isAlwaysTrue() const
Description
Implementation of the SCEVPredicate interface
Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:423
¶void print(llvm::raw_ostream& OS,
unsigned int Depth) const
void print(llvm::raw_ostream& OS,
unsigned int Depth) const
Description
Prints a textual representation of this predicate with an indentation of\p Depth.
Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:425
Parameters
- llvm::raw_ostream& OS
- unsigned int Depth