[Mlir-commits] [mlir] 523914c - [MLIR][Presburger] Deduplicate and move getNegatedCoeffs and getComplementIneq into Utils
Arjun P
llvmlistbot at llvm.org
Mon Mar 21 12:29:12 PDT 2022
Author: Arjun P
Date: 2022-03-21T19:29:11Z
New Revision: 523914c20d974f20dcff463b40855f2cdd463313
URL: https://github.com/llvm/llvm-project/commit/523914c20d974f20dcff463b40855f2cdd463313
DIFF: https://github.com/llvm/llvm-project/commit/523914c20d974f20dcff463b40855f2cdd463313.diff
LOG: [MLIR][Presburger] Deduplicate and move getNegatedCoeffs and getComplementIneq into Utils
Added:
Modified:
mlir/include/mlir/Analysis/Presburger/Utils.h
mlir/lib/Analysis/Presburger/PresburgerRelation.cpp
mlir/lib/Analysis/Presburger/Utils.cpp
Removed:
################################################################################
diff --git a/mlir/include/mlir/Analysis/Presburger/Utils.h b/mlir/include/mlir/Analysis/Presburger/Utils.h
index 1f5b571517cb0..06298f6f4031c 100644
--- a/mlir/include/mlir/Analysis/Presburger/Utils.h
+++ b/mlir/include/mlir/Analysis/Presburger/Utils.h
@@ -130,6 +130,16 @@ void removeDuplicateDivs(
SmallVectorImpl<unsigned> &denoms, unsigned localOffset,
llvm::function_ref<bool(unsigned i, unsigned j)> merge);
+/// Return `coeffs` with all the elements negated.
+SmallVector<int64_t, 8> getNegatedCoeffs(ArrayRef<int64_t> coeffs);
+
+/// Return the complement of the given inequality.
+///
+/// The complement of a_1 x_1 + ... + a_n x_ + c >= 0 is
+/// a_1 x_1 + ... + a_n x_ + c < 0, i.e., -a_1 x_1 - ... - a_n x_ - c - 1 >= 0,
+/// since all the variables are constrained to be integers.
+SmallVector<int64_t, 8> getComplementIneq(ArrayRef<int64_t> ineq);
+
} // namespace presburger
} // namespace mlir
diff --git a/mlir/lib/Analysis/Presburger/PresburgerRelation.cpp b/mlir/lib/Analysis/Presburger/PresburgerRelation.cpp
index 1b5aa0ff42420..6f035aa4e2662 100644
--- a/mlir/lib/Analysis/Presburger/PresburgerRelation.cpp
+++ b/mlir/lib/Analysis/Presburger/PresburgerRelation.cpp
@@ -107,29 +107,6 @@ PresburgerRelation::intersect(const PresburgerRelation &set) const {
return result;
}
-/// Return `coeffs` with all the elements negated.
-static SmallVector<int64_t, 8> getNegatedCoeffs(ArrayRef<int64_t> coeffs) {
- SmallVector<int64_t, 8> negatedCoeffs;
- negatedCoeffs.reserve(coeffs.size());
- for (int64_t coeff : coeffs)
- negatedCoeffs.emplace_back(-coeff);
- return negatedCoeffs;
-}
-
-/// Return the complement of the given inequality.
-///
-/// The complement of a_1 x_1 + ... + a_n x_ + c >= 0 is
-/// a_1 x_1 + ... + a_n x_ + c < 0, i.e., -a_1 x_1 - ... - a_n x_ - c - 1 >= 0,
-/// since all the variables are constrained to be integers.
-static SmallVector<int64_t, 8> getComplementIneq(ArrayRef<int64_t> ineq) {
- SmallVector<int64_t, 8> coeffs;
- coeffs.reserve(ineq.size());
- for (int64_t coeff : ineq)
- coeffs.emplace_back(-coeff);
- --coeffs.back();
- return coeffs;
-}
-
/// Return the set
diff erence b \ s and accumulate the result into `result`.
/// `simplex` must correspond to b.
///
diff --git a/mlir/lib/Analysis/Presburger/Utils.cpp b/mlir/lib/Analysis/Presburger/Utils.cpp
index 96fcafa03ae9b..4cd767029c82e 100644
--- a/mlir/lib/Analysis/Presburger/Utils.cpp
+++ b/mlir/lib/Analysis/Presburger/Utils.cpp
@@ -303,3 +303,20 @@ void presburger::removeDuplicateDivs(
}
}
}
+
+SmallVector<int64_t, 8> presburger::getNegatedCoeffs(ArrayRef<int64_t> coeffs) {
+ SmallVector<int64_t, 8> negatedCoeffs;
+ negatedCoeffs.reserve(coeffs.size());
+ for (int64_t coeff : coeffs)
+ negatedCoeffs.emplace_back(-coeff);
+ return negatedCoeffs;
+}
+
+SmallVector<int64_t, 8> presburger::getComplementIneq(ArrayRef<int64_t> ineq) {
+ SmallVector<int64_t, 8> coeffs;
+ coeffs.reserve(ineq.size());
+ for (int64_t coeff : ineq)
+ coeffs.emplace_back(-coeff);
+ --coeffs.back();
+ return coeffs;
+}
More information about the Mlir-commits
mailing list