llvm::SCEVSMaxExpr

This class represents a signed maximum selection.

Synopsis

Declared in <llvm/Analysis/ScalarEvolutionExpressions.h>

class SCEVSMaxExpr
    : public SCEVMinMaxExpr

Base Classes

NameDescription
SCEVMinMaxExprThis node is the base class min/max selections.

Type Aliases

NameDescription
NoWrapFlags SCEV no-wrap flags; alias of SCEVNoWrapFlags.

Member Functions

NameDescription
operator= [deleted]Deleted copy assignment.
computeAndSetCanonical Compute and set the canonical SCEV, by constructing a SCEV with the same operands, but all SCEVUse flags dropped.
dump This method is used for debugging.
getCanonical Return the canonical SCEV.
getExpressionSize Return the estimated size of this SCEV's expression tree.
getNoWrapFlags Return no-wrap flags selected by Mask.
getNumOperands Return the number of operands.
getOperand Return the operand at index i.
getSCEVType Return the SCEV opcode of this expression.
getType Return the LLVM type of this SCEV expression.
hasNoSelfWrap Return true if this expression has the no-self-wrap flag.
hasNoSignedWrap Return true if this expression has the no-signed-wrap flag.
hasNoUnsignedWrap Return true if this expression has the no-unsigned-wrap flag.
isAllOnesValue Return true if the expression is a constant all-ones value.
isNonConstantNegative Return true if the specified scev is negated, but not a constant.
isOne Return true if the expression is a constant one.
isZero Return true if the expression is a constant zero.
operands Return the array of operands.
print Print this SCEV to OS.
setNoWrapFlags Set flags for a non-recurrence without clearing previously set flags.

Static Member Functions

NameDescription
classof classof overloads
negate Return the dual min/max SCEV type for T.

Static Data Members

NameDescription
FlagAnyWrap No wrap guarantee.
FlagNSW No signed wrap.
FlagNUW No unsigned wrap.
FlagNW No self-wrap.
NoWrapMask Mask of all no-wrap flag bits.

Protected Data Members

NameDescription
CanonicalSCEV Pointer to the canonical version of the SCEV, i.e. one where all operands have no SCEVUse flags.
ExpressionSize Estimated complexity of this node's expression tree size.
NumOperands Number of operands.
Operands Pointer to the immutable operand array owned by ScalarEvolution.
SubclassData This field is initialized to zero and may be used in subclasses to store miscellaneous information.
Ty Immutable type of the SCEV.

Friends

NameDescription
llvm::ScalarEvolutionThe main scalar evolution driver. Because client code (intentionally) can't do much with the SCEV objects directly, they must ask this class for services.

Non-Member Functions

NameDescription
SCEVExprContainsReturn true if any node in Root satisfies the predicate Pred.
cannotBeMaxInLoopReturns true if S is defined and never is equal to signed/unsigned max.
cannotBeMinInLoopReturns true if S is defined and never is equal to signed/unsigned min.
denormalizeForPostIncUseDenormalize S to be post-increment for all loops present in Loops.
isDereferenceableAndAlignedInLoopOverload for isDereferenceableAndAlignedInLoop taking the pointer and access size directly as SCEVs.
isKnownNegativeInLoopReturns true if we can prove that S is defined and always negative in loop L.
isKnownNonNegativeInLoopReturns true if we can prove that S is defined and always non-negative in loop L.
isKnownNonPositiveInLoopReturns true if we can prove that S is defined and always non-positive in loop L.
isKnownPositiveInLoopReturns true if we can prove that S is defined and always positive in loop L.
normalizeForPostIncUseNormalize S to be post-increment for all loops present in Loops.
normalizeForPostIncUseIfNormalize S for all add recurrence sub-expressions for which Pred returns true.
visitAllUse SCEVTraversal to visit all nodes in the given expression tree.
SCEVPatternMatch::m_SCEVMatch a SCEV, capturing it if we match.
SCEVPatternMatch::m_scev_SMaxMatch a commutative SCEVSMaxExpr with operands matching Op0 and Op1.
SCEVPatternMatch::m_scev_SpecificMatch if we have a specific specified SCEV.
SCEVPatternMatch::matchMatch SCEV S against pattern P.