From 2835be82db2037367154bc3226473947abbf661f Mon Sep 17 00:00:00 2001 From: Abhinav271828 <71174780+Abhinav271828@users.noreply.github.com> Date: Sun, 7 Jan 2024 16:27:10 +0530 Subject: [PATCH] [MLIR][Presburger] Fix ParamPoint to be column-wise instead of row-wise (#77232) The ParamPoint datatype has each column representing an affine function. The code for generating functions is modified to reflect this. --- .../Analysis/Presburger/GeneratingFunction.h | 4 ++-- .../Presburger/GeneratingFunctionTest.cpp | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h b/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h index 4dd692c251563b..eaf0449fe8a118 100644 --- a/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h +++ b/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h @@ -22,7 +22,7 @@ namespace presburger { namespace detail { // A parametric point is a vector, each of whose elements -// is an affine function of n parameters. Each row +// is an affine function of n parameters. Each column // in the matrix represents the affine function and // has n+1 elements. using ParamPoint = FracMatrix; @@ -56,7 +56,7 @@ class GeneratingFunction { : numParam(numParam), signs(signs), numerators(nums), denominators(dens) { #ifndef NDEBUG for (const ParamPoint &term : numerators) - assert(term.getNumColumns() == numParam + 1 && + assert(term.getNumRows() == numParam + 1 && "dimensionality of numerator exponents does not match number of " "parameters!"); #endif // NDEBUG diff --git a/mlir/unittests/Analysis/Presburger/GeneratingFunctionTest.cpp b/mlir/unittests/Analysis/Presburger/GeneratingFunctionTest.cpp index 5df1a5a0f64c05..3fc68cddaad007 100644 --- a/mlir/unittests/Analysis/Presburger/GeneratingFunctionTest.cpp +++ b/mlir/unittests/Analysis/Presburger/GeneratingFunctionTest.cpp @@ -17,21 +17,21 @@ using namespace mlir::presburger::detail; TEST(GeneratingFunctionTest, sum) { GeneratingFunction gf1(2, {1, -1}, - {makeFracMatrix(2, 3, {{1, 2, 5}, {7, 2, 6}}), - makeFracMatrix(2, 3, {{5, 2, 5}, {3, 7, 2}})}, + {makeFracMatrix(3, 2, {{1, 2}, {5, 7}, {2, 6}}), + makeFracMatrix(3, 2, {{5, 2}, {5, 3}, {7, 2}})}, {{{3, 6}, {7, 2}}, {{2, 8}, {6, 3}}}); GeneratingFunction gf2(2, {1, 1}, - {makeFracMatrix(2, 3, {{6, 2, 1}, {4, 2, 6}}), - makeFracMatrix(2, 3, {{3, 2, 6}, {9, 2, 5}})}, + {makeFracMatrix(3, 2, {{6, 2}, {1, 4}, {2, 6}}), + makeFracMatrix(3, 2, {{3, 2}, {6, 9}, {2, 5}})}, {{{3, 7}, {5, 1}}, {{5, 2}, {6, 2}}}); GeneratingFunction sum = gf1 + gf2; EXPECT_EQ_REPR_GENERATINGFUNCTION( sum, GeneratingFunction(2, {1, -1, 1, 1}, - {makeFracMatrix(2, 3, {{1, 2, 5}, {7, 2, 6}}), - makeFracMatrix(2, 3, {{5, 2, 5}, {3, 7, 2}}), - makeFracMatrix(2, 3, {{6, 2, 1}, {4, 2, 6}}), - makeFracMatrix(2, 3, {{3, 2, 6}, {9, 2, 5}})}, + {makeFracMatrix(3, 2, {{1, 2}, {5, 7}, {2, 6}}), + makeFracMatrix(3, 2, {{5, 2}, {5, 3}, {7, 2}}), + makeFracMatrix(3, 2, {{6, 2}, {1, 4}, {2, 6}}), + makeFracMatrix(3, 2, {{3, 2}, {6, 9}, {2, 5}})}, {{{3, 6}, {7, 2}}, {{2, 8}, {6, 3}}, {{3, 7}, {5, 1}},