[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