My Project
|
#include <IntegerSet.h>
Public Types | |
using | ImplType = detail::IntegerSetStorage |
Public Member Functions | |
IntegerSet () | |
IntegerSet (ImplType *set) | |
IntegerSet (const IntegerSet &other) | |
IntegerSet & | operator= (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< AffineExpr > | getConstraints () const |
AffineExpr | getConstraint (unsigned idx) const |
ArrayRef< bool > | getEqFlags () const |
bool | isEq (unsigned idx) const |
MLIRContext * | getContext () 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) |
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.
|
inline |
|
inlineexplicit |
|
inline |
void IntegerSet::dump | ( | ) | const |
|
static |
AffineExpr IntegerSet::getConstraint | ( | unsigned | idx | ) | const |
ArrayRef< AffineExpr > IntegerSet::getConstraints | ( | ) | const |
MLIRContext * IntegerSet::getContext | ( | ) | const |
|
inlinestatic |
ArrayRef< bool > IntegerSet::getEqFlags | ( | ) | const |
Returns the equality bits, which specify whether each of the constraints is an equality or inequality.
unsigned IntegerSet::getNumConstraints | ( | ) | const |
unsigned IntegerSet::getNumDims | ( | ) | const |
unsigned IntegerSet::getNumEqualities | ( | ) | const |
unsigned IntegerSet::getNumInequalities | ( | ) | const |
unsigned IntegerSet::getNumInputs | ( | ) | const |
unsigned IntegerSet::getNumSymbols | ( | ) | const |
bool IntegerSet::isEmptyIntegerSet | ( | ) | const |
Returns true if this is the canonical integer set.
bool IntegerSet::isEq | ( | unsigned | idx | ) | const |
Returns true if the idx^th constraint is an equality, false if it is an inequality.
|
inlineexplicit |
|
default |
|
inline |
void IntegerSet::print | ( | raw_ostream & | os | ) | const |
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.
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.
|
friend |