LLVM 23.0.0git
llvm::SCEVCommutativeExpr Class Reference

This node is the base class for n'ary commutative operators. More...

#include "llvm/Analysis/ScalarEvolutionExpressions.h"

Inheritance diagram for llvm::SCEVCommutativeExpr:
[legend]

Public Member Functions

void setNoWrapFlags (NoWrapFlags Flags)
 Set flags for a non-recurrence without clearing previously set flags.
Public Member Functions inherited from llvm::SCEVNAryExpr
size_t getNumOperands () const
SCEVUse getOperand (unsigned i) const
ArrayRef< SCEVUseoperands () 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, SCEVTypes SCEVTy, unsigned short ExpressionSize)
 SCEV (const SCEV &)=delete
SCEVoperator= (const SCEV &)=delete
SCEVTypes getSCEVType () const
LLVM_ABI TypegetType () const
 Return the LLVM type of this SCEV expression.
LLVM_ABI ArrayRef< SCEVUseoperands () const
 Return operands of this SCEV expression.
LLVM_ABI bool isZero () const
 Return true if the expression is a constant zero.
LLVM_ABI bool isOne () const
 Return true if the expression is a constant one.
LLVM_ABI bool isAllOnesValue () const
 Return true if the expression is a constant all-ones value.
LLVM_ABI bool isNonConstantNegative () const
 Return true if the specified scev is negated, but not a constant.
unsigned short getExpressionSize () const
LLVM_ABI void print (raw_ostream &OS) const
 Print out the internal representation of this scalar to the specified stream.
LLVM_ABI void dump () const
 This method is used for debugging.
LLVM_ABI void computeAndSetCanonical (ScalarEvolution &SE)
 Compute and set the canonical SCEV, by constructing a SCEV with the same operands, but all SCEVUse flags dropped.
LLVM_ABI const SCEVgetCanonical () const
 Return the canonical SCEV.
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:
Static Public Member Functions inherited from llvm::SCEVNAryExpr
static bool classof (const SCEV *S)
 Methods for support type inquiry through isa, cast, and dyn_cast:
static bool classof (const SCEVUse *U)

Protected Member Functions

 SCEVCommutativeExpr (const FoldingSetNodeIDRef ID, enum SCEVTypes T, const SCEVUse *O, size_t N)
Protected Member Functions inherited from llvm::SCEVNAryExpr
 SCEVNAryExpr (const FoldingSetNodeIDRef ID, enum SCEVTypes T, const SCEVUse *O, size_t N)

Additional Inherited Members

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...
Protected Attributes inherited from llvm::SCEVNAryExpr
const SCEVUseOperands
size_t NumOperands
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.
const SCEVCanonicalSCEV = nullptr
 Pointer to the canonical version of the SCEV, i.e.

Detailed Description

This node is the base class for n'ary commutative operators.

Definition at line 262 of file ScalarEvolutionExpressions.h.

Constructor & Destructor Documentation

◆ SCEVCommutativeExpr()

llvm::SCEVCommutativeExpr::SCEVCommutativeExpr ( const FoldingSetNodeIDRef ID,
enum SCEVTypes T,
const SCEVUse * O,
size_t N )
inlineprotected

Member Function Documentation

◆ classof()

bool llvm::SCEVCommutativeExpr::classof ( const SCEV * S)
inlinestatic

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

Definition at line 270 of file ScalarEvolutionExpressions.h.

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

◆ setNoWrapFlags()

void llvm::SCEVCommutativeExpr::setNoWrapFlags ( NoWrapFlags Flags)
inline

Set flags for a non-recurrence without clearing previously set flags.

Definition at line 277 of file ScalarEvolutionExpressions.h.

References llvm::SCEV::SubclassData.

Referenced by llvm::SCEVMinMaxExpr::SCEVMinMaxExpr().


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