24 #ifndef MLIR_IR_INTEGERSET_H 25 #define MLIR_IR_INTEGERSET_H 28 #include "llvm/ADT/ArrayRef.h" 33 struct IntegerSetStorage;
51 static IntegerSet get(
unsigned dimCount,
unsigned symbolCount,
60 return get(numDims, numSymbols, one,
true);
64 bool isEmptyIntegerSet()
const;
73 unsigned numResultDims,
74 unsigned numResultSyms);
76 explicit operator bool() {
return set; }
79 unsigned getNumDims()
const;
80 unsigned getNumSymbols()
const;
81 unsigned getNumInputs()
const;
82 unsigned getNumConstraints()
const;
83 unsigned getNumEqualities()
const;
84 unsigned getNumInequalities()
const;
96 bool isEq(
unsigned idx)
const;
104 void print(raw_ostream &os)
const;
111 return static_cast<const void *
>(
set);
115 reinterpret_cast<ImplType *>(const_cast<void *>(pointer)));
134 return mlir::IntegerSet(static_cast<mlir::IntegerSet::ImplType *>(pointer));
138 return mlir::IntegerSet(static_cast<mlir::IntegerSet::ImplType *>(pointer));
149 #endif // MLIR_IR_INTEGERSET_H Include the generated interface declarations.
const void * getAsOpaquePointer() const
Methods supporting C API.
static unsigned getHashValue(mlir::IntegerSet val)
Explicitly register a set of "builtin" types.
AffineExpr getAffineConstantExpr(int64_t constant, MLIRContext *context)
bool operator==(IntegerSet other) const
IntegerSet(ImplType *set)
static bool isEqual(mlir::IntegerSet LHS, mlir::IntegerSet RHS)
static mlir::IntegerSet getEmptyKey()
Base type for affine expression.
static IntegerSet getFromOpaquePointer(const void *pointer)
static void print(ArrayType type, DialectAsmPrinter &os)
inline ::llvm::hash_code hash_value(AffineExpr arg)
Make AffineExpr hashable.
static mlir::IntegerSet getTombstoneKey()
MLIRContext is the top-level object for a collection of MLIR operations.
static IntegerSet getEmptySet(unsigned numDims, unsigned numSymbols, MLIRContext *context)
inline ::llvm::hash_code hash_value(IntegerSet arg)
An integer set representing a conjunction of one or more affine equalities and inequalities.