diff --git a/mlir/lib/Analysis/Presburger/IntegerRelation.cpp b/mlir/lib/Analysis/Presburger/IntegerRelation.cpp --- a/mlir/lib/Analysis/Presburger/IntegerRelation.cpp +++ b/mlir/lib/Analysis/Presburger/IntegerRelation.cpp @@ -374,6 +374,12 @@ 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); }