LLVM 22.0.0git
llvm::SCEVComparePredicate Class Referencefinal

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"

Inheritance diagram for llvm::SCEVComparePredicate:
[legend]

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 SCEVgetLHS () const
 Returns the left hand side of the predicate.
const SCEVgetRHS () const
 Returns the right hand side of the predicate.
Public Member Functions inherited from llvm::SCEVPredicate
LLVM_ABI SCEVPredicate (const FoldingSetNodeIDRef ID, SCEVPredicateKind Kind)
 SCEV predicates.
SCEVPredicateKind getKind () const
virtual unsigned getComplexity () const
 Returns the estimated complexity of this predicate.
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
SCEVPredicateoperator= (const SCEVPredicate &)=default
Protected Attributes inherited from llvm::SCEVPredicate
SCEVPredicateKind Kind

Detailed Description

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 278 of file ScalarEvolution.h.

Constructor & Destructor Documentation

◆ SCEVComparePredicate()

SCEVComparePredicate::SCEVComparePredicate ( const FoldingSetNodeIDRef ID,
const ICmpInst::Predicate Pred,
const SCEV * LHS,
const SCEV * RHS )

Member Function Documentation

◆ classof()

bool llvm::SCEVComparePredicate::classof ( const SCEVPredicate * P)
inlinestatic

Methods for support type inquiry through isa, cast, and dyn_cast:

Definition at line 303 of file ScalarEvolution.h.

References P, llvm::SCEVPredicate::P_Compare, and llvm::SCEVPredicate::SCEVPredicate().

◆ getLHS()

const SCEV * llvm::SCEVComparePredicate::getLHS ( ) const
inline

Returns the left hand side of the predicate.

Definition at line 297 of file ScalarEvolution.h.

◆ getPredicate()

ICmpInst::Predicate llvm::SCEVComparePredicate::getPredicate ( ) const
inline

Definition at line 294 of file ScalarEvolution.h.

◆ getRHS()

const SCEV * llvm::SCEVComparePredicate::getRHS ( ) const
inline

Returns the right hand side of the predicate.

Definition at line 300 of file ScalarEvolution.h.

◆ implies()

bool SCEVComparePredicate::implies ( const SCEVPredicate * N,
ScalarEvolution & SE ) const
overridevirtual

Implementation of the SCEVPredicate interface.

Implements llvm::SCEVPredicate.

Definition at line 15057 of file ScalarEvolution.cpp.

References llvm::dyn_cast(), llvm::CmpInst::ICMP_EQ, N, and llvm::SCEVPredicate::SCEVPredicate().

◆ isAlwaysTrue()

bool SCEVComparePredicate::isAlwaysTrue ( ) const
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 15070 of file ScalarEvolution.cpp.

◆ print()

void SCEVComparePredicate::print ( raw_ostream & OS,
unsigned Depth = 0 ) const
overridevirtual

Prints a textual representation of this predicate with an indentation of Depth.

Implements llvm::SCEVPredicate.

Definition at line 15072 of file ScalarEvolution.cpp.

References llvm::Depth, llvm::CmpInst::ICMP_EQ, and llvm::raw_ostream::indent().


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