14 #ifndef MLIR_DIALECT_SDBM_SDBM_H 15 #define MLIR_DIALECT_SDBM_SDBM_H 18 #include "llvm/ADT/DenseMap.h" 37 constexpr
static int64_t
infty = std::numeric_limits<int64_t>::max();
49 explicit operator int64_t()
const {
return value; }
65 static_cast<uint64_t
>(lhs.
getValue()) +
66 static_cast<uint64_t>(rhs.
getValue()) <
67 static_cast<uint64_t>(std::numeric_limits<int64_t>::max())) &&
74 ((
static_cast<uint64_t
>(lhs.
getValue()) +
75 static_cast<uint64_t>(rhs.
getValue())) >>
77 "IntInfty underflow");
109 void print(raw_ostream &os);
118 IntInfty &at(
int i,
int j) {
return matrix[i * getNumVariables() + j]; }
124 void convertDBMElement(
unsigned row,
unsigned col,
SDBMTermExpr rowExpr,
131 void convertDBMDiagonalElement(
unsigned pos,
SDBMTermExpr expr,
135 unsigned getNumVariables()
const {
136 return 1 + numDims + numSymbols + numTemporaries;
140 unsigned getDimPosition(
unsigned position)
const {
return 1 + position; }
143 unsigned getSymbolPosition(
unsigned position)
const {
144 return 1 + numDims + position;
148 unsigned getTemporaryPosition(
unsigned position)
const {
149 return 1 + numDims + numSymbols + position;
157 unsigned numTemporaries;
184 std::vector<IntInfty> matrix;
197 #endif // MLIR_DIALECT_SDBM_SDBM_H Definition: InferTypeOpInterface.cpp:20
IntInfty operator()(int i, int j)
Definition: SDBM.h:112
bool operator!=(IntInfty lhs, IntInfty rhs)
Definition: SDBM.h:94
IntInfty operator+(IntInfty lhs, IntInfty rhs)
Definition: SDBM.h:57
IntInfty & operator=(int64_t v)
Definition: SDBM.h:41
int64_t getValue() const
Definition: SDBM.h:48
static IntInfty infinity()
Definition: SDBM.h:46
bool operator==(IntInfty lhs, IntInfty rhs)
Definition: SDBM.h:90
bool operator<(IntInfty lhs, IntInfty rhs)
Definition: SDBM.h:82
IntInfty(int64_t v)
Definition: SDBM.h:39
static constexpr int64_t infty
Definition: SDBM.h:37
bool isFinite()
Definition: SDBM.h:51
void print(OpAsmPrinter &p, AffineIfOp op)
Definition: AffineOps.cpp:1671
Definition: SDBMDialect.h:18
bool operator<=(IntInfty lhs, IntInfty rhs)
Definition: SDBM.h:86
Definition: SDBMExpr.h:221