LLVM
8.0.1
|
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 > |
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 SCEV * | getOperand (unsigned i) const |
op_iterator | op_begin () const |
op_iterator | op_end () const |
op_range | operands () const |
Type * | getType () 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 | |
SCEV & | operator= (const SCEV &)=delete |
unsigned | 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... | |
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 *const * | Operands |
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... | |
This node is a base class providing common functionality for n'ary operators.
Definition at line 136 of file ScalarEvolutionExpressions.h.
using llvm::SCEVNAryExpr::op_iterator = const SCEV *const * |
Definition at line 157 of file ScalarEvolutionExpressions.h.
Definition at line 158 of file ScalarEvolutionExpressions.h.
|
inlineprotected |
Definition at line 145 of file ScalarEvolutionExpressions.h.
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.
|
inline |
Definition at line 168 of file ScalarEvolutionExpressions.h.
References llvm::BitmaskEnumDetail::Mask(), and llvm::SCEV::SubclassData.
Referenced by llvm::ScalarEvolution::getAddExpr(), getConstantPart(), llvm::SCEVWrapPredicate::getImpliedFlags(), llvm::ScalarEvolution::getMulExpr(), getRangeForAffineARHelper(), llvm::SCEVWrapPredicate::isAlwaysTrue(), IsKnownPredicateViaAddRecStart(), isNoWrapAddRec(), llvm::SCEV::print(), sizeOfSCEV(), llvm::SCEVRewriteVisitor< SCEVLoopAddRecRewriter >::visitAddRecExpr(), and llvm::SCEVLoopAddRecRewriter::visitAddRecExpr().
|
inline |
Definition at line 150 of file ScalarEvolutionExpressions.h.
Referenced by BuildConstantFromSCEV(), CollectAddOperandsWithScales(), CompareSCEVComplexity(), extractConstantWithoutWrapping(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getMulExpr(), GetQuadraticEquation(), llvm::ScalarEvolution::getUDivExactExpr(), isAlwaysFoldable(), isMulSExtable(), MatchNotExpr(), and llvm::SCEV::print().
Definition at line 152 of file ScalarEvolutionExpressions.h.
References assert().
Referenced by BuildConstantFromSCEV(), CollectAddOperandsWithScales(), CompareSCEVComplexity(), EvaluateConstantChrecAtConstant(), extractConstantWithoutWrapping(), llvm::ScalarEvolution::getAddExpr(), getMemSetPatternValue(), llvm::ScalarEvolution::getMulExpr(), GetQuadraticEquation(), getStoreStride(), llvm::ScalarEvolution::getUDivExactExpr(), hasZeroSignBit(), isAlwaysFoldable(), llvm::SCEV::isNonConstantNegative(), MatchNotExpr(), llvm::SCEV::print(), and SolveQuadraticAddRecRange().
|
inline |
Definition at line 166 of file ScalarEvolutionExpressions.h.
Referenced by canBeCheaplyTransformed(), EvaluateConstantChrecAtConstant(), FindLoopCounter(), llvm::ScalarEvolution::getMulExpr(), isAddRecSExtable(), isExistingPhi(), IsIncrementNSW(), IsIncrementNUW(), isMulSExtable(), mayUsePostIncMode(), PickMostRelevantLoop(), llvm::LoopDataPrefetchPass::run(), and SolveQuadraticAddRecRange().
|
inline |
Definition at line 180 of file ScalarEvolutionExpressions.h.
References llvm::SCEV::FlagAnyWrap, and llvm::SCEV::FlagNW.
Referenced by llvm::SCEV::print().
|
inline |
Definition at line 176 of file ScalarEvolutionExpressions.h.
References llvm::SCEV::FlagAnyWrap, and llvm::SCEV::FlagNSW.
Referenced by isAlwaysFoldable(), llvm::ScalarEvolution::isMonotonicPredicate(), llvm::SCEV::print(), and PushDefUseChildren().
|
inline |
Definition at line 172 of file ScalarEvolutionExpressions.h.
References llvm::SCEV::FlagAnyWrap, and llvm::SCEV::FlagNUW.
Referenced by llvm::ScalarEvolution::getUDivExactExpr(), isAlwaysFoldable(), llvm::ScalarEvolution::isMonotonicPredicate(), llvm::SCEV::print(), and PushDefUseChildren().
|
inline |
Definition at line 160 of file ScalarEvolutionExpressions.h.
Referenced by CollectAddOperandsWithScales(), llvm::ScalarEvolution::getAddExpr(), getExprBase(), llvm::ScalarEvolution::getUDivExactExpr(), PickMostRelevantLoop(), and llvm::SCEV::print().
|
inline |
Definition at line 161 of file ScalarEvolutionExpressions.h.
Referenced by CollectAddOperandsWithScales(), llvm::ScalarEvolution::getAddExpr(), getExprBase(), llvm::ScalarEvolution::getUDivExactExpr(), PickMostRelevantLoop(), and llvm::SCEV::print().
|
inline |
Definition at line 162 of file ScalarEvolutionExpressions.h.
References llvm::make_range().
Referenced by llvm::ScalarEvolution::getBlockDisposition(), llvm::ScalarEvolution::getLoopDisposition(), sizeOfSCEV(), llvm::SCEVRewriteVisitor< SCEVLoopAddRecRewriter >::visitAddExpr(), llvm::SCEVRewriteVisitor< SCEVLoopAddRecRewriter >::visitAddRecExpr(), llvm::SCEVLoopAddRecRewriter::visitAddRecExpr(), llvm::SCEVRewriteVisitor< SCEVLoopAddRecRewriter >::visitMulExpr(), llvm::SCEVRewriteVisitor< SCEVLoopAddRecRewriter >::visitSMaxExpr(), and llvm::SCEVRewriteVisitor< SCEVLoopAddRecRewriter >::visitUMaxExpr().
|
protected |
Definition at line 143 of file ScalarEvolutionExpressions.h.
Definition at line 142 of file ScalarEvolutionExpressions.h.