My Project
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
mlir::IntegerSet Class Reference

#include <IntegerSet.h>

Public Types

using ImplType = detail::IntegerSetStorage
 

Public Member Functions

 IntegerSet ()
 
 IntegerSet (ImplType *set)
 
 IntegerSet (const IntegerSet &other)
 
IntegerSetoperator= (const IntegerSet &other)=default
 
bool isEmptyIntegerSet () const
 Returns true if this is the canonical integer set. More...
 
IntegerSet replaceDimsAndSymbols (ArrayRef< AffineExpr > dimReplacements, ArrayRef< AffineExpr > symReplacements, unsigned numResultDims, unsigned numResultSyms)
 
 operator bool ()
 
bool operator== (IntegerSet other) const
 
unsigned getNumDims () const
 
unsigned getNumSymbols () const
 
unsigned getNumInputs () const
 
unsigned getNumConstraints () const
 
unsigned getNumEqualities () const
 
unsigned getNumInequalities () const
 
ArrayRef< AffineExprgetConstraints () const
 
AffineExpr getConstraint (unsigned idx) const
 
ArrayRef< bool > getEqFlags () const
 
bool isEq (unsigned idx) const
 
MLIRContextgetContext () const
 
void walkExprs (function_ref< void(AffineExpr)> callback) const
 
void print (raw_ostream &os) const
 
void dump () const
 

Static Public Member Functions

static IntegerSet get (unsigned dimCount, unsigned symbolCount, ArrayRef< AffineExpr > constraints, ArrayRef< bool > eqFlags)
 
static IntegerSet getEmptySet (unsigned numDims, unsigned numSymbols, MLIRContext *context)
 

Friends

::llvm::hash_code hash_value (IntegerSet arg)
 

Detailed Description

An integer set representing a conjunction of one or more affine equalities and inequalities. An integer set in the IR is immutable like the affine map, but integer sets are not unique'd. The affine expressions that make up the equalities and inequalities of an integer set are themselves unique and are allocated by the bump pointer allocator.

Member Typedef Documentation

◆ ImplType

Constructor & Destructor Documentation

◆ IntegerSet() [1/3]

mlir::IntegerSet::IntegerSet ( )
inline

◆ IntegerSet() [2/3]

mlir::IntegerSet::IntegerSet ( ImplType set)
inlineexplicit

◆ IntegerSet() [3/3]

mlir::IntegerSet::IntegerSet ( const IntegerSet other)
inline

Member Function Documentation

◆ dump()

void IntegerSet::dump ( ) const

◆ get()

IntegerSet IntegerSet::get ( unsigned  dimCount,
unsigned  symbolCount,
ArrayRef< AffineExpr constraints,
ArrayRef< bool >  eqFlags 
)
static

◆ getConstraint()

AffineExpr IntegerSet::getConstraint ( unsigned  idx) const

◆ getConstraints()

ArrayRef< AffineExpr > IntegerSet::getConstraints ( ) const

◆ getContext()

MLIRContext * IntegerSet::getContext ( ) const

◆ getEmptySet()

static IntegerSet mlir::IntegerSet::getEmptySet ( unsigned  numDims,
unsigned  numSymbols,
MLIRContext context 
)
inlinestatic

◆ getEqFlags()

ArrayRef< bool > IntegerSet::getEqFlags ( ) const

Returns the equality bits, which specify whether each of the constraints is an equality or inequality.

◆ getNumConstraints()

unsigned IntegerSet::getNumConstraints ( ) const

◆ getNumDims()

unsigned IntegerSet::getNumDims ( ) const

◆ getNumEqualities()

unsigned IntegerSet::getNumEqualities ( ) const

◆ getNumInequalities()

unsigned IntegerSet::getNumInequalities ( ) const

◆ getNumInputs()

unsigned IntegerSet::getNumInputs ( ) const

◆ getNumSymbols()

unsigned IntegerSet::getNumSymbols ( ) const

◆ isEmptyIntegerSet()

bool IntegerSet::isEmptyIntegerSet ( ) const

Returns true if this is the canonical integer set.

◆ isEq()

bool IntegerSet::isEq ( unsigned  idx) const

Returns true if the idx^th constraint is an equality, false if it is an inequality.

◆ operator bool()

mlir::IntegerSet::operator bool ( )
inlineexplicit

◆ operator=()

IntegerSet& mlir::IntegerSet::operator= ( const IntegerSet other)
default

◆ operator==()

bool mlir::IntegerSet::operator== ( IntegerSet  other) const
inline

◆ print()

void IntegerSet::print ( raw_ostream &  os) const

◆ replaceDimsAndSymbols()

IntegerSet IntegerSet::replaceDimsAndSymbols ( ArrayRef< AffineExpr dimReplacements,
ArrayRef< AffineExpr symReplacements,
unsigned  numResultDims,
unsigned  numResultSyms 
)

This method substitutes any uses of dimensions and symbols (e.g. dim#0 with dimReplacements[0]) in subexpressions and returns the modified integer set. Because this can be used to eliminate dims and symbols, the client needs to specify the number of dims and symbols in the result. The returned map always has the same number of results.

◆ walkExprs()

void IntegerSet::walkExprs ( function_ref< void(AffineExpr)>  callback) const

Walk all of the AffineExpr's in this set's constraints. Each node in an expression tree is visited in postorder.

Walk all of the AffineExpr's in this set. Each node in an expression tree is visited in postorder.

Friends And Related Function Documentation

◆ hash_value

::llvm::hash_code hash_value ( IntegerSet  arg)
friend

The documentation for this class was generated from the following files: