LLVM
15.0.0git
|
This node is a base class providing common functionality for n'ary operators. More...
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
Public Types | |
using | op_iterator = const SCEV *const * |
using | op_range = iterator_range< op_iterator > |
![]() | |
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 SCEV * | getOperand (unsigned i) const |
op_iterator | op_begin () const |
op_iterator | op_end () const |
op_range | operands () const |
NoWrapFlags | getNoWrapFlags (NoWrapFlags Mask=NoWrapMask) const |
bool | hasNoUnsignedWrap () const |
bool | hasNoSignedWrap () const |
bool | hasNoSelfWrap () const |
![]() | |
SCEV (const FoldingSetNodeIDRef ID, SCEVTypes SCEVTy, unsigned short ExpressionSize) | |
SCEV (const SCEV &)=delete | |
SCEV & | operator= (const SCEV &)=delete |
SCEVTypes | getSCEVType () const |
Type * | getType () 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... | |
![]() | |
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 *const * | Operands |
size_t | NumOperands |
![]() | |
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... | |
This node is a base class providing common functionality for n'ary operators.
Definition at line 184 of file ScalarEvolutionExpressions.h.
using llvm::SCEVNAryExpr::op_iterator = const SCEV *const * |
Definition at line 206 of file ScalarEvolutionExpressions.h.
Definition at line 207 of file ScalarEvolutionExpressions.h.
|
inlineprotected |
Definition at line 193 of file ScalarEvolutionExpressions.h.
References T.
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 228 of file ScalarEvolutionExpressions.h.
References S, llvm::scAddExpr, llvm::scAddRecExpr, llvm::scMulExpr, llvm::scSequentialUMinExpr, llvm::scSMaxExpr, llvm::scSMinExpr, llvm::scUMaxExpr, and llvm::scUMinExpr.
|
inline |
Definition at line 213 of file ScalarEvolutionExpressions.h.
References llvm::BitmaskEnumDetail::Mask(), and llvm::SCEV::SubclassData.
Referenced by llvm::ScalarEvolution::getAddExpr(), llvm::SCEVWrapPredicate::getImpliedFlags(), llvm::ScalarEvolution::getLosslessPtrToIntExpr(), llvm::ScalarEvolution::getMulExpr(), getPreStartForExtend(), hasNoSelfWrap(), hasNoSignedWrap(), hasNoUnsignedWrap(), llvm::SCEVWrapPredicate::isAlwaysTrue(), IsKnownPredicateViaAddRecStart(), isNoWrapAddRec(), llvm::SCEV::print(), llvm::ScalarEvolution::setNoWrapFlags(), llvm::SCEVDivision::visitAddRecExpr(), llvm::SCEVRewriteVisitor< SCEVLoopGuardRewriter >::visitAddRecExpr(), and llvm::SCEVLoopAddRecRewriter::visitAddRecExpr().
|
inline |
Definition at line 199 of file ScalarEvolutionExpressions.h.
References NumOperands.
Referenced by BuildConstantFromSCEV(), CompareSCEVComplexity(), extractConstantWithoutWrapping(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getMulExpr(), getPreStartForExtend(), GetQuadraticEquation(), llvm::SCEVAddRecExpr::isAffine(), llvm::SCEVAddRecExpr::isQuadratic(), MatchNotExpr(), and llvm::SCEV::print().
Definition at line 201 of file ScalarEvolutionExpressions.h.
References assert(), i, NumOperands, and Operands.
Referenced by BuildConstantFromSCEV(), CompareSCEVComplexity(), extractConstantWithoutWrapping(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getMulExpr(), GetQuadraticEquation(), llvm::SCEVAddRecExpr::getStepRecurrence(), getStoreStride(), llvm::SCEVMulExpr::getType(), llvm::SCEVMinMaxExpr::getType(), llvm::SCEVSequentialMinMaxExpr::getType(), MatchNotExpr(), llvm::SCEV::print(), and SolveQuadraticAddRecRange().
|
inline |
Definition at line 225 of file ScalarEvolutionExpressions.h.
References llvm::SCEV::FlagAnyWrap, llvm::SCEV::FlagNW, and getNoWrapFlags().
Referenced by countToEliminateCompares(), and llvm::SCEV::print().
|
inline |
Definition at line 221 of file ScalarEvolutionExpressions.h.
References llvm::SCEV::FlagAnyWrap, llvm::SCEV::FlagNSW, and getNoWrapFlags().
Referenced by llvm::SCEV::print().
|
inline |
Definition at line 217 of file ScalarEvolutionExpressions.h.
References llvm::SCEV::FlagAnyWrap, llvm::SCEV::FlagNUW, and getNoWrapFlags().
Referenced by llvm::SCEV::print().
|
inline |
Definition at line 209 of file ScalarEvolutionExpressions.h.
References Operands.
Referenced by llvm::SCEVAddRecExpr::evaluateAtIteration(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getMinMaxExpr(), llvm::SCEVAddRecExpr::getStepRecurrence(), and operands().
|
inline |
Definition at line 210 of file ScalarEvolutionExpressions.h.
References NumOperands, and Operands.
Referenced by llvm::SCEVAddRecExpr::evaluateAtIteration(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getMinMaxExpr(), llvm::SCEVAddRecExpr::getStepRecurrence(), and operands().
|
inline |
Definition at line 211 of file ScalarEvolutionExpressions.h.
References llvm::make_range(), op_begin(), and op_end().
Referenced by llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getLosslessPtrToIntExpr(), getPreStartForExtend(), llvm::SCEV::print(), llvm::SCEVDivision::visitAddExpr(), llvm::SCEVRewriteVisitor< SCEVLoopGuardRewriter >::visitAddExpr(), llvm::SCEVRewriteVisitor< SCEVLoopGuardRewriter >::visitAddRecExpr(), llvm::SCEVLoopAddRecRewriter::visitAddRecExpr(), llvm::SCEVDivision::visitMulExpr(), llvm::SCEVRewriteVisitor< SCEVLoopGuardRewriter >::visitMulExpr(), llvm::SCEVRewriteVisitor< SCEVLoopGuardRewriter >::visitSequentialUMinExpr(), llvm::SCEVRewriteVisitor< SCEVLoopGuardRewriter >::visitSMaxExpr(), llvm::SCEVRewriteVisitor< SCEVLoopGuardRewriter >::visitSMinExpr(), llvm::SCEVRewriteVisitor< SCEVLoopGuardRewriter >::visitUMaxExpr(), and llvm::SCEVRewriteVisitor< SCEVLoopGuardRewriter >::visitUMinExpr().
|
protected |
Definition at line 191 of file ScalarEvolutionExpressions.h.
Referenced by getNumOperands(), getOperand(), and op_end().
Definition at line 190 of file ScalarEvolutionExpressions.h.
Referenced by llvm::SCEVAddRecExpr::evaluateAtIteration(), getOperand(), llvm::SCEVAddRecExpr::getStart(), op_begin(), and op_end().