LLVM  7.0.0svn
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
llvm::SCEVNAryExpr Class Reference

This node is a base class providing common functionality for n'ary operators. More...

#include "llvm/Analysis/ScalarEvolutionExpressions.h"

Inheritance diagram for llvm::SCEVNAryExpr:
Inheritance graph
Collaboration diagram for llvm::SCEVNAryExpr:
Collaboration graph

Public Types

using op_iterator = const SCEV *const *
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

size_t getNumOperands () const
const SCEVgetOperand (unsigned i) const
op_iterator op_begin () const
op_iterator op_end () const
op_range operands () const
TypegetType () const
NoWrapFlags getNoWrapFlags (NoWrapFlags Mask=NoWrapMask) const
bool hasNoUnsignedWrap () const
bool hasNoSignedWrap () const
bool hasNoSelfWrap () const
- Public Member Functions inherited from llvm::SCEV
 SCEV (const FoldingSetNodeIDRef ID, unsigned SCEVTy)
 SCEV (const SCEV &)=delete
SCEVoperator= (const SCEV &)=delete
unsigned 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...
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

 SCEVNAryExpr (const FoldingSetNodeIDRef ID, enum SCEVTypes T, const SCEV *const *O, size_t N)

Protected Attributes

const SCEV *constOperands
size_t NumOperands
- Protected Attributes inherited from llvm::SCEV
unsigned short SubclassData = 0
 This field is initialized to zero and may be used in subclasses to store miscellaneous information. More...

Detailed Description

This node is a base class providing common functionality for n'ary operators.

Definition at line 136 of file ScalarEvolutionExpressions.h.

Member Typedef Documentation

◆ op_iterator

Definition at line 157 of file ScalarEvolutionExpressions.h.

◆ op_range

Definition at line 158 of file ScalarEvolutionExpressions.h.

Constructor & Destructor Documentation

◆ SCEVNAryExpr()

llvm::SCEVNAryExpr::SCEVNAryExpr ( const FoldingSetNodeIDRef  ID,
enum SCEVTypes  T,
const SCEV *const O,
size_t  N 

Definition at line 145 of file ScalarEvolutionExpressions.h.

Member Function Documentation

◆ classof()

static bool llvm::SCEVNAryExpr::classof ( const SCEV S)

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

Definition at line 185 of file ScalarEvolutionExpressions.h.

References llvm::SCEV::getSCEVType(), llvm::scAddExpr, llvm::scAddRecExpr, llvm::scMulExpr, llvm::scSMaxExpr, and llvm::scUMaxExpr.

◆ getNoWrapFlags()

NoWrapFlags llvm::SCEVNAryExpr::getNoWrapFlags ( NoWrapFlags  Mask = NoWrapMask) const

◆ getNumOperands()

size_t llvm::SCEVNAryExpr::getNumOperands ( ) const

◆ getOperand()

const SCEV* llvm::SCEVNAryExpr::getOperand ( unsigned  i) const

◆ getType()

Type* llvm::SCEVNAryExpr::getType ( ) const

◆ hasNoSelfWrap()

bool llvm::SCEVNAryExpr::hasNoSelfWrap ( ) const

◆ hasNoSignedWrap()

bool llvm::SCEVNAryExpr::hasNoSignedWrap ( ) const

◆ hasNoUnsignedWrap()

bool llvm::SCEVNAryExpr::hasNoUnsignedWrap ( ) const

◆ op_begin()

op_iterator llvm::SCEVNAryExpr::op_begin ( ) const

◆ op_end()

op_iterator llvm::SCEVNAryExpr::op_end ( ) const

◆ operands()

op_range llvm::SCEVNAryExpr::operands ( ) const

Member Data Documentation

◆ NumOperands

size_t llvm::SCEVNAryExpr::NumOperands

Definition at line 143 of file ScalarEvolutionExpressions.h.

◆ Operands

const SCEV* const* llvm::SCEVNAryExpr::Operands

Definition at line 142 of file ScalarEvolutionExpressions.h.

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