mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-03-04 08:27:50 +00:00
[MLIR][Presburger] Move IntegerPolyhedron::reset to FlatAffineConstraints::reset
This patch moves IntegerPolyhedron::reset to FlatAffineConstraints::reset. This function is not required in IntegerPolyhedron and creates ambiguity while shifting implementations to IntegerRelation. This patch is part of a series of patches to introduce relations in Presburger library. Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D120628
This commit is contained in:
parent
69684b84c6
commit
b486a9de80
@ -144,16 +144,6 @@ public:
|
||||
// Clones this object.
|
||||
std::unique_ptr<IntegerPolyhedron> 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);
|
||||
|
@ -102,6 +102,15 @@ public:
|
||||
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<FlatAffineConstraints> clone() const;
|
||||
|
||||
|
@ -31,23 +31,6 @@ std::unique_ptr<IntegerPolyhedron> IntegerPolyhedron::clone() const {
|
||||
return std::make_unique<IntegerPolyhedron>(*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 BoundCmpResult compareBounds(ArrayRef<int64_t> a, ArrayRef<int64_t> b) {
|
||||
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) {
|
||||
|
@ -233,6 +233,25 @@ FlatAffineValueConstraints::getHyperrectangular(ValueRange ivs, ValueRange lbs,
|
||||
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,
|
||||
|
Loading…
x
Reference in New Issue
Block a user