LLVM  14.0.0git
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
llvm::SCEVCastExpr Class Reference

This is the base class for unary cast operator classes. More...

#include "llvm/Analysis/ScalarEvolutionExpressions.h"

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

Public Types

using op_iterator = std::array< const SCEV *, 1 >::const_iterator
 
using op_range = iterator_range< op_iterator >
 
- Public Types inherited from llvm::SCEV
enum  NoWrapFlags {
  FlagAnyWrap = 0, FlagNW = (1 << 0), FlagNUW = (1 << 1), FlagNSW = (1 << 2),
  NoWrapMask = (1 << 3) - 1
}
 NoWrapFlags are bitfield indices into SubclassData. More...
 

Public Member Functions

const SCEVgetOperand () const
 
const SCEVgetOperand (unsigned i) const
 
op_range operands () const
 
size_t getNumOperands () const
 
TypegetType () const
 
- Public Member Functions inherited from llvm::SCEV
 SCEV (const FoldingSetNodeIDRef ID, SCEVTypes SCEVTy, unsigned short ExpressionSize)
 
 SCEV (const SCEV &)=delete
 
SCEVoperator= (const SCEV &)=delete
 
SCEVTypes getSCEVType () const
 
TypegetType () const
 Return the LLVM type of this SCEV expression. More...
 
bool isZero () const
 Return true if the expression is a constant zero. More...
 
bool isOne () const
 Return true if the expression is a constant one. More...
 
bool isAllOnesValue () const
 Return true if the expression is a constant all-ones value. More...
 
bool isNonConstantNegative () const
 Return true if the specified scev is negated, but not a constant. More...
 
unsigned short getExpressionSize () const
 
void print (raw_ostream &OS) const
 Print out the internal representation of this scalar to the specified stream. More...
 
void dump () const
 This method is used for debugging. 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 SCEV *S)
 Methods for support type inquiry through isa, cast, and dyn_cast: More...
 

Protected Member Functions

 SCEVCastExpr (const FoldingSetNodeIDRef ID, SCEVTypes SCEVTy, const SCEV *op, Type *ty)
 

Protected Attributes

std::array< const SCEV *, 1 > Operands
 
TypeTy
 
- Protected Attributes inherited from llvm::SCEV
const unsigned short ExpressionSize
 
unsigned short SubclassData = 0
 This field is initialized to zero and may be used in subclasses to store miscellaneous information. More...
 

Detailed Description

This is the base class for unary cast operator classes.

Definition at line 75 of file ScalarEvolutionExpressions.h.

Member Typedef Documentation

◆ op_iterator

Definition at line 89 of file ScalarEvolutionExpressions.h.

◆ op_range

Definition at line 90 of file ScalarEvolutionExpressions.h.

Constructor & Destructor Documentation

◆ SCEVCastExpr()

SCEVCastExpr::SCEVCastExpr ( const FoldingSetNodeIDRef  ID,
SCEVTypes  SCEVTy,
const SCEV op,
Type ty 
)
protected

Definition at line 467 of file ScalarEvolution.cpp.

References op, and Operands.

Member Function Documentation

◆ classof()

static bool llvm::SCEVCastExpr::classof ( const SCEV S)
inlinestatic

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

Definition at line 99 of file ScalarEvolutionExpressions.h.

References S, llvm::scPtrToInt, llvm::scSignExtend, llvm::scTruncate, and llvm::scZeroExtend.

◆ getNumOperands()

size_t llvm::SCEVCastExpr::getNumOperands ( ) const
inline

Definition at line 95 of file ScalarEvolutionExpressions.h.

◆ getOperand() [1/2]

const SCEV* llvm::SCEVCastExpr::getOperand ( ) const
inline

◆ getOperand() [2/2]

const SCEV* llvm::SCEVCastExpr::getOperand ( unsigned  i) const
inline

Definition at line 85 of file ScalarEvolutionExpressions.h.

References assert(), i, and Operands.

◆ getType()

Type* llvm::SCEVCastExpr::getType ( ) const
inline

◆ operands()

op_range llvm::SCEVCastExpr::operands ( ) const
inline

Definition at line 92 of file ScalarEvolutionExpressions.h.

References llvm::make_range(), and Operands.

Member Data Documentation

◆ Operands

std::array<const SCEV *, 1> llvm::SCEVCastExpr::Operands
protected

Definition at line 77 of file ScalarEvolutionExpressions.h.

Referenced by getOperand(), operands(), and SCEVCastExpr().

◆ Ty

Type* llvm::SCEVCastExpr::Ty
protected

Definition at line 78 of file ScalarEvolutionExpressions.h.

Referenced by getType().


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