diff --git a/mlir/include/mlir/Analysis/Presburger/IntegerPolyhedron.h b/mlir/include/mlir/Analysis/Presburger/IntegerPolyhedron.h --- a/mlir/include/mlir/Analysis/Presburger/IntegerPolyhedron.h +++ b/mlir/include/mlir/Analysis/Presburger/IntegerPolyhedron.h @@ -144,16 +144,6 @@ // Clones this object. std::unique_ptr clone() const; - /// Clears any existing data and reserves memory for the specified - /// constraints. - virtual void reset(unsigned numReservedInequalities, - unsigned numReservedEqualities, unsigned numReservedCols, - unsigned numDims, unsigned numSymbols, - unsigned numLocals = 0); - - void reset(unsigned numDims = 0, unsigned numSymbols = 0, - unsigned numLocals = 0); - /// Appends constraints from `other` into `this`. This is equivalent to an /// intersection with no simplification of any sort attempted. void append(const IntegerPolyhedron &other); diff --git a/mlir/include/mlir/Dialect/Affine/Analysis/AffineStructures.h b/mlir/include/mlir/Dialect/Affine/Analysis/AffineStructures.h --- a/mlir/include/mlir/Dialect/Affine/Analysis/AffineStructures.h +++ b/mlir/include/mlir/Dialect/Affine/Analysis/AffineStructures.h @@ -102,6 +102,15 @@ return cst->getKind() == Kind::FlatAffineConstraints; } + /// Clears any existing data and reserves memory for the specified + /// constraints. + virtual void reset(unsigned numReservedInequalities, + unsigned numReservedEqualities, unsigned numReservedCols, + unsigned numDims, unsigned numSymbols, + unsigned numLocals = 0); + void reset(unsigned numDims = 0, unsigned numSymbols = 0, + unsigned numLocals = 0); + // Clones this object. std::unique_ptr clone() const; diff --git a/mlir/lib/Analysis/Presburger/IntegerPolyhedron.cpp b/mlir/lib/Analysis/Presburger/IntegerPolyhedron.cpp --- a/mlir/lib/Analysis/Presburger/IntegerPolyhedron.cpp +++ b/mlir/lib/Analysis/Presburger/IntegerPolyhedron.cpp @@ -31,23 +31,6 @@ return std::make_unique(*this); } -void IntegerPolyhedron::reset(unsigned numReservedInequalities, - unsigned numReservedEqualities, - unsigned newNumReservedCols, unsigned newNumDims, - unsigned newNumSymbols, unsigned newNumLocals) { - assert(newNumReservedCols >= newNumDims + newNumSymbols + newNumLocals + 1 && - "minimum 1 column"); - *this = IntegerPolyhedron(numReservedInequalities, numReservedEqualities, - newNumReservedCols, newNumDims, newNumSymbols, - newNumLocals); -} - -void IntegerPolyhedron::reset(unsigned newNumDims, unsigned newNumSymbols, - unsigned newNumLocals) { - reset(0, 0, newNumDims + newNumSymbols + newNumLocals + 1, newNumDims, - newNumSymbols, newNumLocals); -} - void IntegerPolyhedron::append(const IntegerPolyhedron &other) { assert(PresburgerLocalSpace::isEqual(other) && "Spaces must be equal."); @@ -1796,7 +1779,8 @@ static void getCommonConstraints(const IntegerPolyhedron &a, const IntegerPolyhedron &b, IntegerPolyhedron &c) { - c.reset(a.getNumDimIds(), a.getNumSymbolIds(), a.getNumLocalIds()); + c = IntegerPolyhedron(a.getNumDimIds(), a.getNumSymbolIds(), + a.getNumLocalIds()); // a naive O(n^2) check should be enough here given the input sizes. for (unsigned r = 0, e = a.getNumInequalities(); r < e; ++r) { for (unsigned s = 0, f = b.getNumInequalities(); s < f; ++s) { diff --git a/mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp b/mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp --- a/mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp +++ b/mlir/lib/Dialect/Affine/Analysis/AffineStructures.cpp @@ -233,6 +233,25 @@ return res; } +void FlatAffineConstraints::reset(unsigned numReservedInequalities, + unsigned numReservedEqualities, + unsigned newNumReservedCols, + unsigned newNumDims, unsigned newNumSymbols, + unsigned newNumLocals) { + assert(newNumReservedCols >= newNumDims + newNumSymbols + newNumLocals + 1 && + "minimum 1 column"); + *this = FlatAffineConstraints(numReservedInequalities, numReservedEqualities, + newNumReservedCols, newNumDims, newNumSymbols, + newNumLocals); +} + +void FlatAffineConstraints::reset(unsigned newNumDims, unsigned newNumSymbols, + unsigned newNumLocals) { + reset(/*numReservedInequalities=*/0, /*numReservedEqualities=*/0, + /*numReservedCols=*/newNumDims + newNumSymbols + newNumLocals + 1, + newNumDims, newNumSymbols, newNumLocals); +} + void FlatAffineValueConstraints::reset(unsigned numReservedInequalities, unsigned numReservedEqualities, unsigned newNumReservedCols,