18 return set->dimCount + set->symbolCount;
22 return set->constraints.size();
26 unsigned numEqualities = 0;
42 return set->constraints;
70 unsigned numResultDims,
unsigned numResultSyms) {
74 constraints.push_back(
75 cst.replaceDimsAndSymbols(dimReplacements, symReplacements));
77 return get(numResultDims, numResultSyms, constraints,
getEqFlags());
Base type for affine expression.
MLIRContext * getContext() const
void walkExprs(function_ref< void(AffineExpr)> callback) const
Walk all of the AffineExpr's in this set's constraints.
IntegerSet replaceDimsAndSymbols(ArrayRef< AffineExpr > dimReplacements, ArrayRef< AffineExpr > symReplacements, unsigned numResultDims, unsigned numResultSyms)
This method substitutes any uses of dimensions and symbols (e.g.
constexpr IntegerSet()=default
unsigned getNumDims() const
static IntegerSet get(unsigned dimCount, unsigned symbolCount, ArrayRef< AffineExpr > constraints, ArrayRef< bool > eqFlags)
MLIRContext * getContext() const
unsigned getNumInputs() const
unsigned getNumConstraints() const
static IntegerSet getEmptySet(unsigned numDims, unsigned numSymbols, MLIRContext *context)
ArrayRef< AffineExpr > getConstraints() const
unsigned getNumEqualities() const
bool isEmptyIntegerSet() const
Returns true if this is the canonical integer set.
AffineExpr getConstraint(unsigned idx) const
unsigned getNumInequalities() const
bool isEq(unsigned idx) const
Returns true if the idx^th constraint is an equality, false if it is an inequality.
ArrayRef< bool > getEqFlags() const
Returns the equality bits, which specify whether each of the constraints is an equality or inequality...
unsigned getNumSymbols() const
MLIRContext is the top-level object for a collection of MLIR operations.
Include the generated interface declarations.
llvm::function_ref< Fn > function_ref