class SCEVSequentialMinMaxExpr
Declaration
class SCEVSequentialMinMaxExpr : public SCEVNAryExpr { /* full declaration omitted */ };
Description
This node is the base class for sequential/in-order min/max selections. Note that their fundamental difference from SCEVMinMaxExpr's is that they are early-returning upon reaching saturation point. I.e. given `0 umin_seq poison`, the result will be `0`, while the result of `0 umin poison` is `poison`.
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:511
Inherits from: SCEVNAryExpr
Member Variables
Inherited from SCEVNAryExpr:
Inherited from SCEV:
Method Overview
- protected SCEVSequentialMinMaxExpr(const llvm::FoldingSetNodeIDRef ID, enum SCEVTypes T, const llvm::SCEV *const * O, size_t N)
- public static bool classof(const llvm::SCEV * S)
- public static llvm::SCEVTypes getEquivalentNonSequentialSCEVType(llvm::SCEVTypes Ty)
- public llvm::SCEVTypes getEquivalentNonSequentialSCEVType() const
- public llvm::Type * getType() const
- private static bool isSequentialMinMaxType(enum SCEVTypes T)
- private void setNoWrapFlags(llvm::SCEV::NoWrapFlags Flags)
Inherited from SCEVNAryExpr:
- public classof
- public getNoWrapFlags
- public getNumOperands
- public getOperand
- public hasNoSelfWrap
- public hasNoSignedWrap
- public hasNoUnsignedWrap
- public op_begin
- public op_end
- public operands
Inherited from SCEV:
- public dump
- public getExpressionSize
- public getSCEVType
- public getType
- public isAllOnesValue
- public isNonConstantNegative
- public isOne
- public isZero
- public print
Inherited from FoldingSetBase::Node:
Methods
¶SCEVSequentialMinMaxExpr(
const llvm::FoldingSetNodeIDRef ID,
enum SCEVTypes T,
const llvm::SCEV* const* O,
size_t N)
SCEVSequentialMinMaxExpr(
const llvm::FoldingSetNodeIDRef ID,
enum SCEVTypes T,
const llvm::SCEV* const* O,
size_t N)
Description
Note: Constructing subclasses via this constructor is allowed
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:523
Parameters
- const llvm::FoldingSetNodeIDRef ID
- enum SCEVTypes T
- const llvm::SCEV* const* O
- size_t N
¶static bool classof(const llvm::SCEV* S)
static bool classof(const llvm::SCEV* S)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:548
Parameters
- const llvm::SCEV* S
¶static llvm::SCEVTypes
getEquivalentNonSequentialSCEVType(
llvm::SCEVTypes Ty)
static llvm::SCEVTypes
getEquivalentNonSequentialSCEVType(
llvm::SCEVTypes Ty)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:534
Parameters
- llvm::SCEVTypes Ty
¶llvm::SCEVTypes
getEquivalentNonSequentialSCEVType() const
llvm::SCEVTypes
getEquivalentNonSequentialSCEVType() const
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:544
¶llvm::Type* getType() const
llvm::Type* getType() const
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:532
¶static bool isSequentialMinMaxType(
enum SCEVTypes T)
static bool isSequentialMinMaxType(
enum SCEVTypes T)
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:514
Parameters
- enum SCEVTypes T
¶void setNoWrapFlags(llvm::SCEV::NoWrapFlags Flags)
void setNoWrapFlags(llvm::SCEV::NoWrapFlags Flags)
Description
Set flags for a non-recurrence without clearing previously set flags.
Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:519
Parameters
- llvm::SCEV::NoWrapFlags Flags