[Mlir-commits] [mlir] 9615d71 - [MLIR][Presburger] IntegerRelation::truncate: fix bug when truncating equalities
    Arjun P 
    llvmlistbot at llvm.org
       
    Thu Mar 31 07:16:28 PDT 2022
    
    
  
Author: Arjun P
Date: 2022-03-31T15:16:30+01:00
New Revision: 9615d717d12f3daf18f62236b911b159659ab363
URL: https://github.com/llvm/llvm-project/commit/9615d717d12f3daf18f62236b911b159659ab363
DIFF: https://github.com/llvm/llvm-project/commit/9615d717d12f3daf18f62236b911b159659ab363.diff
LOG: [MLIR][Presburger] IntegerRelation::truncate: fix bug when truncating equalities
This was truncating inequalities instead of equalities.
Reviewed By: Groverkss
Differential Revision: https://reviews.llvm.org/D122811
Added: 
    
Modified: 
    mlir/lib/Analysis/Presburger/IntegerRelation.cpp
    mlir/unittests/Analysis/Presburger/IntegerPolyhedronTest.cpp
Removed: 
    
################################################################################
diff  --git a/mlir/lib/Analysis/Presburger/IntegerRelation.cpp b/mlir/lib/Analysis/Presburger/IntegerRelation.cpp
index 50ced2af42613..de95511dec6d2 100644
--- a/mlir/lib/Analysis/Presburger/IntegerRelation.cpp
+++ b/mlir/lib/Analysis/Presburger/IntegerRelation.cpp
@@ -142,7 +142,7 @@ void IntegerRelation::truncate(const CountsSnapshot &counts) {
   truncateIdKind(IdKind::Symbol, counts);
   truncateIdKind(IdKind::Local, counts);
   removeInequalityRange(counts.getNumIneqs(), getNumInequalities());
-  removeInequalityRange(counts.getNumEqs(), getNumEqualities());
+  removeEqualityRange(counts.getNumEqs(), getNumEqualities());
 }
 
 unsigned IntegerRelation::insertId(IdKind kind, unsigned pos, unsigned num) {
diff  --git a/mlir/unittests/Analysis/Presburger/IntegerPolyhedronTest.cpp b/mlir/unittests/Analysis/Presburger/IntegerPolyhedronTest.cpp
index e7bbac3fc8ea0..4d55036e5fbf7 100644
--- a/mlir/unittests/Analysis/Presburger/IntegerPolyhedronTest.cpp
+++ b/mlir/unittests/Analysis/Presburger/IntegerPolyhedronTest.cpp
@@ -1202,3 +1202,13 @@ TEST(IntegerPolyhedronTest, containsPointNoLocal) {
   EXPECT_TRUE(poly3.containsPointNoLocal({0, 0}));
   EXPECT_FALSE(poly3.containsPointNoLocal({1, 0}));
 }
+
+TEST(IntegerPolyhedronTest, truncateEqualityRegressionTest) {
+  // IntegerRelation::truncate was truncating inequalities to the number of
+  // equalities.
+  IntegerRelation set(1);
+  IntegerRelation::CountsSnapshot snapshot = set.getCounts();
+  set.addEquality({1, 0});
+  set.truncate(snapshot);
+  EXPECT_EQ(set.getNumEqualities(), 0u);
+}
        
    
    
More information about the Mlir-commits
mailing list