summaryrefslogtreecommitdiff
path: root/mlir/lib/Analysis/Presburger/IntegerRelation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mlir/lib/Analysis/Presburger/IntegerRelation.cpp')
-rw-r--r--mlir/lib/Analysis/Presburger/IntegerRelation.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/mlir/lib/Analysis/Presburger/IntegerRelation.cpp b/mlir/lib/Analysis/Presburger/IntegerRelation.cpp
index 3724df5abccc..0109384f1689 100644
--- a/mlir/lib/Analysis/Presburger/IntegerRelation.cpp
+++ b/mlir/lib/Analysis/Presburger/IntegerRelation.cpp
@@ -449,6 +449,12 @@ void IntegerRelation::swapVar(unsigned posA, unsigned posB) {
if (posA == posB)
return;
+ VarKind kindA = space.getVarKindAt(posA);
+ VarKind kindB = space.getVarKindAt(posB);
+ unsigned relativePosA = posA - getVarKindOffset(kindA);
+ unsigned relativePosB = posB - getVarKindOffset(kindB);
+ space.swapVar(kindA, kindB, relativePosA, relativePosB);
+
inequalities.swapColumns(posA, posB);
equalities.swapColumns(posA, posB);
}