[Mlir-commits] [mlir] 00f3410 - [MLIR][Presburger] add atConstraint to index into combined constraint matrix
Arjun P
llvmlistbot at llvm.org
Tue Dec 2 07:28:37 PST 2025
Author: Arjun P
Date: 2025-12-02T15:28:29Z
New Revision: 00f3410719d090fe8aa77cc5ecc1a280c01fbf0d
URL: https://github.com/llvm/llvm-project/commit/00f3410719d090fe8aa77cc5ecc1a280c01fbf0d
DIFF: https://github.com/llvm/llvm-project/commit/00f3410719d090fe8aa77cc5ecc1a280c01fbf0d.diff
LOG: [MLIR][Presburger] add atConstraint to index into combined constraint matrix
Added:
Modified:
mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
Removed:
################################################################################
diff --git a/mlir/include/mlir/Analysis/Presburger/IntegerRelation.h b/mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
index f86535740fec9..f9b99121476eb 100644
--- a/mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
+++ b/mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
@@ -196,6 +196,7 @@ class IntegerRelation {
inline DynamicAPInt atIneq(unsigned i, unsigned j) const {
return inequalities(i, j);
}
+
/// The same, but casts to int64_t. This is unsafe and will assert-fail if the
/// value does not fit in an int64_t.
inline int64_t atIneq64(unsigned i, unsigned j) const {
@@ -209,6 +210,19 @@ class IntegerRelation {
return getNumInequalities() + getNumEqualities();
}
+ // Unified indexing into the constraints. Index into the inequalities
+ // if i < getNumInequalities() and into the equalities otherwise.
+ inline DynamicAPInt atConstraint(unsigned i, unsigned j) const {
+ assert(i < getNumConstraints());
+ unsigned numIneqs = getNumInequalities();
+ return i < numIneqs ? atIneq(i, j) : atEq(i - numIneqs, j);
+ }
+ inline DynamicAPInt &atConstraint(unsigned i, unsigned j) {
+ assert(i < getNumConstraints());
+ unsigned numIneqs = getNumInequalities();
+ return i < numIneqs ? atIneq(i, j) : atEq(i - numIneqs, j);
+ }
+
unsigned getNumDomainVars() const { return space.getNumDomainVars(); }
unsigned getNumRangeVars() const { return space.getNumRangeVars(); }
unsigned getNumSymbolVars() const { return space.getNumSymbolVars(); }
More information about the Mlir-commits
mailing list