LLVM  8.0.1
Public Member Functions | Static Public Member Functions | List of all members
llvm::SCEVEqualPredicate Class Referencefinal

This class represents an assumption that two SCEV expressions are equal, and this can be checked at run-time. More...

#include "llvm/Analysis/ScalarEvolution.h"

Inheritance diagram for llvm::SCEVEqualPredicate:
Inheritance graph
[legend]
Collaboration diagram for llvm::SCEVEqualPredicate:
Collaboration graph
[legend]

Public Member Functions

 SCEVEqualPredicate (const FoldingSetNodeIDRef ID, const SCEV *LHS, const SCEV *RHS)
 
bool implies (const SCEVPredicate *N) const override
 Implementation of the SCEVPredicate interface. More...
 
void print (raw_ostream &OS, unsigned Depth=0) const override
 Prints a textual representation of this predicate with an indentation of Depth. More...
 
bool isAlwaysTrue () const override
 Returns true if the predicate is always true. More...
 
const SCEVgetExpr () const override
 Returns the SCEV to which this predicate applies, or nullptr if this is a SCEVUnionPredicate. More...
 
const SCEVgetLHS () const
 Returns the left hand side of the equality. More...
 
const SCEVgetRHS () const
 Returns the right hand side of the equality. More...
 
- Public Member Functions inherited from llvm::SCEVPredicate
 SCEVPredicate (const FoldingSetNodeIDRef ID, SCEVPredicateKind Kind)
 SCEV predicates. More...
 
SCEVPredicateKind getKind () const
 
virtual unsigned getComplexity () const
 Returns the estimated complexity of this predicate. More...
 
- 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: More...
 

Additional Inherited Members

- Public Types inherited from llvm::SCEVPredicate
enum  SCEVPredicateKind { P_Union, P_Equal, 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 two SCEV expressions are equal, and this can be checked at run-time.

Definition at line 249 of file ScalarEvolution.h.

Constructor & Destructor Documentation

◆ SCEVEqualPredicate()

SCEVEqualPredicate::SCEVEqualPredicate ( const FoldingSetNodeIDRef  ID,
const SCEV LHS,
const SCEV RHS 
)

Definition at line 12150 of file ScalarEvolution.cpp.

References assert(), and llvm::SCEV::getType().

Member Function Documentation

◆ classof()

static bool llvm::SCEVEqualPredicate::classof ( const SCEVPredicate P)
inlinestatic

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

Definition at line 271 of file ScalarEvolution.h.

References llvm::SCEVPredicate::getKind().

◆ getExpr()

const SCEV * SCEVEqualPredicate::getExpr ( ) const
overridevirtual

Returns the SCEV to which this predicate applies, or nullptr if this is a SCEVUnionPredicate.

Implements llvm::SCEVPredicate.

Definition at line 12168 of file ScalarEvolution.cpp.

◆ getLHS()

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

Returns the left hand side of the equality.

Definition at line 265 of file ScalarEvolution.h.

Referenced by llvm::SCEVExpander::expandEqualPredicate().

◆ getRHS()

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

Returns the right hand side of the equality.

Definition at line 268 of file ScalarEvolution.h.

Referenced by llvm::SCEVExpander::expandEqualPredicate().

◆ implies()

bool SCEVEqualPredicate::implies ( const SCEVPredicate N) const
overridevirtual

Implementation of the SCEVPredicate interface.

Implements llvm::SCEVPredicate.

Definition at line 12157 of file ScalarEvolution.cpp.

References llvm::dyn_cast(), and N.

◆ isAlwaysTrue()

bool SCEVEqualPredicate::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 12166 of file ScalarEvolution.cpp.

◆ print()

void SCEVEqualPredicate::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 12170 of file ScalarEvolution.cpp.

References llvm::raw_ostream::indent().


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