LLVM 20.0.0git
|
This class represents an assumption that the expression LHS Pred RHS evaluates to true, and this can be checked at run-time. More...
#include "llvm/Analysis/ScalarEvolution.h"
Public Member Functions | |
SCEVComparePredicate (const FoldingSetNodeIDRef ID, const ICmpInst::Predicate Pred, const SCEV *LHS, const SCEV *RHS) | |
bool | implies (const SCEVPredicate *N, ScalarEvolution &SE) const override |
Implementation of the SCEVPredicate interface. | |
void | print (raw_ostream &OS, unsigned Depth=0) const override |
Prints a textual representation of this predicate with an indentation of Depth . | |
bool | isAlwaysTrue () const override |
Returns true if the predicate is always true. | |
ICmpInst::Predicate | getPredicate () const |
const SCEV * | getLHS () const |
Returns the left hand side of the predicate. | |
const SCEV * | getRHS () const |
Returns the right hand side of the predicate. | |
Public Member Functions inherited from llvm::SCEVPredicate | |
SCEVPredicate (const FoldingSetNodeIDRef ID, SCEVPredicateKind Kind) | |
SCEV predicates. | |
SCEVPredicateKind | getKind () const |
virtual unsigned | getComplexity () const |
Returns the estimated complexity of this predicate. | |
virtual bool | isAlwaysTrue () const =0 |
Returns true if the predicate is always true. | |
virtual bool | implies (const SCEVPredicate *N, ScalarEvolution &SE) const =0 |
Returns true if this predicate implies N . | |
virtual void | print (raw_ostream &OS, unsigned Depth=0) const =0 |
Prints a textual representation of this predicate with an indentation of Depth . | |
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 an assumption that the expression LHS Pred RHS evaluates to true, and this can be checked at run-time.
Definition at line 277 of file ScalarEvolution.h.
SCEVComparePredicate::SCEVComparePredicate | ( | const FoldingSetNodeIDRef | ID, |
const ICmpInst::Predicate | Pred, | ||
const SCEV * | LHS, | ||
const SCEV * | RHS | ||
) |
Definition at line 14929 of file ScalarEvolution.cpp.
References assert(), llvm::Value::getType(), LHS, and RHS.
|
inlinestatic |
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 302 of file ScalarEvolution.h.
References P, and llvm::SCEVPredicate::P_Compare.
Returns the left hand side of the predicate.
Definition at line 296 of file ScalarEvolution.h.
References LHS.
Referenced by llvm::SCEVExpander::expandComparePredicate().
|
inline |
Definition at line 293 of file ScalarEvolution.h.
Referenced by llvm::SCEVExpander::expandComparePredicate().
Returns the right hand side of the predicate.
Definition at line 299 of file ScalarEvolution.h.
References RHS.
Referenced by llvm::SCEVExpander::expandComparePredicate().
|
overridevirtual |
Implementation of the SCEVPredicate interface.
Implements llvm::SCEVPredicate.
Definition at line 14937 of file ScalarEvolution.cpp.
References llvm::CmpInst::ICMP_EQ, LHS, N, and RHS.
|
overridevirtual |
Returns true if the predicate is always true.
This means that no assumptions were made and nothing needs to be checked at run-time.
Implements llvm::SCEVPredicate.
Definition at line 14950 of file ScalarEvolution.cpp.
|
overridevirtual |
Prints a textual representation of this predicate with an indentation of Depth
.
Implements llvm::SCEVPredicate.
Definition at line 14952 of file ScalarEvolution.cpp.
References llvm::Depth, llvm::CmpInst::ICMP_EQ, llvm::raw_ostream::indent(), LHS, OS, and RHS.