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:

protected Operands
protected NumOperands

Inherited from SCEV:

protected ExpressionSize
protected SubclassData = 0

Method Overview

Inherited from SCEVNAryExpr:

Inherited from SCEV:

Inherited from FoldingSetBase::Node:

Methods

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)

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:548

Parameters

const llvm::SCEV* S

static llvm::SCEVTypes
getEquivalentNonSequentialSCEVType(
    llvm::SCEVTypes Ty)

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:534

Parameters

llvm::SCEVTypes Ty

llvm::SCEVTypes
getEquivalentNonSequentialSCEVType() const

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:544

llvm::Type* getType() const

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:532

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)

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