23 #ifndef MLIR_IR_INTEGER_SET_H 24 #define MLIR_IR_INTEGER_SET_H 27 #include "llvm/ADT/ArrayRef.h" 32 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;
112 constexpr
static unsigned kUniquingThreshold = 4;
127 return mlir::IntegerSet(static_cast<mlir::IntegerSet::ImplType *>(pointer));
131 return mlir::IntegerSet(static_cast<mlir::IntegerSet::ImplType *>(pointer));
142 #endif // MLIR_IR_INTEGER_SET_H Definition: InferTypeOpInterface.cpp:20
static unsigned getHashValue(mlir::IntegerSet val)
Definition: IntegerSet.h:133
Definition: PassRegistry.cpp:413
AffineExpr getAffineConstantExpr(int64_t constant, MLIRContext *context)
Definition: AffineExpr.cpp:277
bool operator==(IntegerSet other) const
Definition: IntegerSet.h:77
IntegerSet(ImplType *set)
Definition: IntegerSet.h:47
static bool isEqual(mlir::IntegerSet LHS, mlir::IntegerSet RHS)
Definition: IntegerSet.h:136
Definition: IntegerSetDetail.h:22
static mlir::IntegerSet getEmptyKey()
Definition: IntegerSet.h:125
Definition: AffineExpr.h:66
inline ::llvm::hash_code hash_value(AffineExpr arg)
Make AffineExpr hashable.
Definition: AffineExpr.h:201
static mlir::IntegerSet getTombstoneKey()
Definition: IntegerSet.h:129
Definition: MLIRContext.h:34
void print(OpAsmPrinter &p, AffineIfOp op)
Definition: AffineOps.cpp:1671
IntegerSet()
Definition: IntegerSet.h:46
IntegerSet(const IntegerSet &other)
Definition: IntegerSet.h:48
static IntegerSet getEmptySet(unsigned numDims, unsigned numSymbols, MLIRContext *context)
Definition: IntegerSet.h:56
Definition: Attributes.h:135
inline ::llvm::hash_code hash_value(IntegerSet arg)
Definition: IntegerSet.h:116
Definition: IntegerSet.h:42