[Mlir-commits] [mlir] mlir/Presburger: thoroughly guard debug-print (PR #95247)

Ramkumar Ramachandra llvmlistbot at llvm.org
Wed Jun 12 06:22:29 PDT 2024


https://github.com/artagnon created https://github.com/llvm/llvm-project/pull/95247

Follow up on 638d968 (mlir/Presburger: guard dump function; fix buildbot) to implement a more thorough fix. Guard all debug-printing functions in Presburger with !NDEBUG || LLVM_ENABLE_DUMP. This fixes the build on one particular configuration: without assertions, and LLVM_ENABLE_DUMP explicitly turned off.

>From 13ad269955f56465ab429f042471f168f41c2460 Mon Sep 17 00:00:00 2001
From: Ramkumar Ramachandra <ramkumar.ramachandra at codasip.com>
Date: Wed, 12 Jun 2024 14:02:27 +0100
Subject: [PATCH] mlir/Presburger: thoroughly guard debug-print

Follow up on 638d968 (mlir/Presburger: guard dump function; fix
buildbot) to implement a more thorough fix. Guard all debug-printing
functions in Presburger with !NDEBUG || LLVM_ENABLE_DUMP. This fixes the
build on one particular configuration: without assertions, and
LLVM_ENABLE_DUMP explicitly turned off.
---
 .../mlir/Analysis/FlatLinearValueConstraints.h      |  4 ++++
 .../mlir/Analysis/Presburger/GeneratingFunction.h   |  2 ++
 .../mlir/Analysis/Presburger/IntegerRelation.h      |  4 ++++
 mlir/include/mlir/Analysis/Presburger/Matrix.h      |  2 ++
 .../include/mlir/Analysis/Presburger/PWMAFunction.h |  4 ++++
 .../mlir/Analysis/Presburger/PresburgerRelation.h   |  2 ++
 .../mlir/Analysis/Presburger/PresburgerSpace.h      |  4 ++++
 mlir/include/mlir/Analysis/Presburger/Simplex.h     |  4 ++++
 mlir/include/mlir/Analysis/Presburger/Utils.h       |  2 ++
 .../mlir/Interfaces/ValueBoundsOpInterface.h        |  2 ++
 mlir/lib/Analysis/FlatLinearValueConstraints.cpp    |  2 ++
 mlir/lib/Analysis/Presburger/IntegerRelation.cpp    | 13 +++++++------
 mlir/lib/Analysis/Presburger/Matrix.cpp             | 12 +++++++-----
 mlir/lib/Analysis/Presburger/PWMAFunction.cpp       |  4 ++++
 mlir/lib/Analysis/Presburger/PresburgerRelation.cpp |  2 ++
 mlir/lib/Analysis/Presburger/PresburgerSpace.cpp    |  4 ++++
 mlir/lib/Analysis/Presburger/Simplex.cpp            |  2 ++
 mlir/lib/Analysis/Presburger/Utils.cpp              |  2 ++
 mlir/lib/Interfaces/ValueBoundsOpInterface.cpp      |  2 ++
 .../Analysis/Presburger/IntegerPolyhedronTest.cpp   |  7 ++++++-
 .../Analysis/Presburger/LinearTransformTest.cpp     |  2 ++
 21 files changed, 70 insertions(+), 12 deletions(-)

diff --git a/mlir/include/mlir/Analysis/FlatLinearValueConstraints.h b/mlir/include/mlir/Analysis/FlatLinearValueConstraints.h
index cc6ab64b4b7d7..4019a1c80d2b8 100644
--- a/mlir/include/mlir/Analysis/FlatLinearValueConstraints.h
+++ b/mlir/include/mlir/Analysis/FlatLinearValueConstraints.h
@@ -218,10 +218,12 @@ class FlatLinearConstraints : public presburger::IntegerPolyhedron {
       AffineMap map, std::vector<SmallVector<int64_t, 8>> *flattenedExprs,
       bool addConservativeSemiAffineBounds = false);
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   /// Prints the number of constraints, dimensions, symbols and locals in the
   /// FlatLinearConstraints. Also, prints for each variable whether there is
   /// an SSA Value attached to it.
   void printSpace(raw_ostream &os) const override;
+#endif
 };
 
 /// FlatLinearValueConstraints represents an extension of FlatLinearConstraints
@@ -432,10 +434,12 @@ class FlatLinearValueConstraints : public FlatLinearConstraints {
   void projectOut(Value val);
   using IntegerPolyhedron::projectOut;
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   /// Prints the number of constraints, dimensions, symbols and locals in the
   /// FlatAffineValueConstraints. Also, prints for each variable whether there
   /// is an SSA Value attached to it.
   void printSpace(raw_ostream &os) const override;
+#endif
 
   /// Align `map` with this constraint system based on `operands`. Each operand
   /// must already have a corresponding dim/symbol in this constraint system.
diff --git a/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h b/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h
index db5b6b6a95918..9da6e9e2f5638 100644
--- a/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h
+++ b/mlir/include/mlir/Analysis/Presburger/GeneratingFunction.h
@@ -90,6 +90,7 @@ class GeneratingFunction {
                               sumDenominators);
   }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   llvm::raw_ostream &print(llvm::raw_ostream &os) const {
     for (unsigned i = 0, e = signs.size(); i < e; i++) {
       if (i == 0) {
@@ -124,6 +125,7 @@ class GeneratingFunction {
     }
     return os;
   }
+#endif
 
 private:
   unsigned numParam;
diff --git a/mlir/include/mlir/Analysis/Presburger/IntegerRelation.h b/mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
index 40e96e2583d22..b7274778c9917 100644
--- a/mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
+++ b/mlir/include/mlir/Analysis/Presburger/IntegerRelation.h
@@ -748,8 +748,10 @@ class IntegerRelation {
   // false.
   bool isFullDim();
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   void print(raw_ostream &os) const;
   void dump() const;
+#endif
 
 protected:
   /// Checks all rows of equality/inequality constraints for trivial
@@ -834,9 +836,11 @@ class IntegerRelation {
   /// is meant to be used within an assert internally.
   virtual bool hasConsistentState() const;
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   /// Prints the number of constraints, dimensions, symbols and locals in the
   /// IntegerRelation.
   virtual void printSpace(raw_ostream &os) const;
+#endif
 
   /// Removes variables in the column range [varStart, varLimit), and copies any
   /// remaining valid data into place, updates member variables, and resizes
diff --git a/mlir/include/mlir/Analysis/Presburger/Matrix.h b/mlir/include/mlir/Analysis/Presburger/Matrix.h
index e232ecd5e1509..397eacb6dd36f 100644
--- a/mlir/include/mlir/Analysis/Presburger/Matrix.h
+++ b/mlir/include/mlir/Analysis/Presburger/Matrix.h
@@ -206,9 +206,11 @@ class Matrix {
   /// corresponding to 2.
   std::pair<Matrix<T>, Matrix<T>> splitByBitset(ArrayRef<int> indicator);
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   /// Print the matrix.
   void print(raw_ostream &os) const;
   void dump() const;
+#endif
 
   /// Return whether the Matrix is in a consistent state with all its
   /// invariants satisfied.
diff --git a/mlir/include/mlir/Analysis/Presburger/PWMAFunction.h b/mlir/include/mlir/Analysis/Presburger/PWMAFunction.h
index fcc39bf0e0537..bc9d7f31a8fa7 100644
--- a/mlir/include/mlir/Analysis/Presburger/PWMAFunction.h
+++ b/mlir/include/mlir/Analysis/Presburger/PWMAFunction.h
@@ -109,8 +109,10 @@ class MultiAffineFunction {
   /// Get this function as a relation.
   IntegerRelation getAsRelation() const;
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   void print(raw_ostream &os) const;
   void dump() const;
+#endif
 
 private:
   /// Assert that the MAF is consistent.
@@ -220,8 +222,10 @@ class PWMAFunction {
   PWMAFunction unionLexMin(const PWMAFunction &func);
   PWMAFunction unionLexMax(const PWMAFunction &func);
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   void print(raw_ostream &os) const;
   void dump() const;
+#endif
 
 private:
   /// Return a function defined on the union of the domains of `this` and
diff --git a/mlir/include/mlir/Analysis/Presburger/PresburgerRelation.h b/mlir/include/mlir/Analysis/Presburger/PresburgerRelation.h
index f7e06a6b22a95..fed2deffdecc0 100644
--- a/mlir/include/mlir/Analysis/Presburger/PresburgerRelation.h
+++ b/mlir/include/mlir/Analysis/Presburger/PresburgerRelation.h
@@ -221,9 +221,11 @@ class PresburgerRelation {
   /// dimensional we mean that it is not flat along any dimension.
   bool isFullDim() const;
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   /// Print the set's internal state.
   void print(raw_ostream &os) const;
   void dump() const;
+#endif
 
 protected:
   /// Construct an empty PresburgerRelation with the specified number of
diff --git a/mlir/include/mlir/Analysis/Presburger/PresburgerSpace.h b/mlir/include/mlir/Analysis/Presburger/PresburgerSpace.h
index a8ec373f885e2..4fa8455b67460 100644
--- a/mlir/include/mlir/Analysis/Presburger/PresburgerSpace.h
+++ b/mlir/include/mlir/Analysis/Presburger/PresburgerSpace.h
@@ -99,8 +99,10 @@ class Identifier {
   bool operator==(const Identifier &other) const { return isEqual(other); }
   bool operator!=(const Identifier &other) const { return !isEqual(other); }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   void print(llvm::raw_ostream &os) const;
   void dump() const;
+#endif
 
 private:
   /// The value of the identifier.
@@ -308,8 +310,10 @@ class PresburgerSpace {
   /// the same identifiers in the same order.
   void mergeAndAlignSymbols(PresburgerSpace &other);
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   void print(llvm::raw_ostream &os) const;
   void dump() const;
+#endif
 
 protected:
   PresburgerSpace(unsigned numDomain, unsigned numRange, unsigned numSymbols,
diff --git a/mlir/include/mlir/Analysis/Presburger/Simplex.h b/mlir/include/mlir/Analysis/Presburger/Simplex.h
index ff26e94e019c8..1a2b1f0f092f6 100644
--- a/mlir/include/mlir/Analysis/Presburger/Simplex.h
+++ b/mlir/include/mlir/Analysis/Presburger/Simplex.h
@@ -208,9 +208,11 @@ class SimplexBase {
   /// Add all the constraints from the given IntegerRelation.
   void intersectIntegerRelation(const IntegerRelation &rel);
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   /// Print the tableau's internal state.
   void print(raw_ostream &os) const;
   void dump() const;
+#endif
 
 protected:
   /// Construct a SimplexBase with the specified number of variables and fixed
@@ -246,12 +248,14 @@ class SimplexBase {
     bool restricted : 1;
     bool isSymbol : 1;
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
     void print(raw_ostream &os) const {
       os << (orientation == Orientation::Row ? "r" : "c");
       os << pos;
       if (restricted)
         os << " [>=0]";
     }
+#endif
   };
 
   struct Pivot {
diff --git a/mlir/include/mlir/Analysis/Presburger/Utils.h b/mlir/include/mlir/Analysis/Presburger/Utils.h
index 9b93e52b48490..8f34d2821dd7c 100644
--- a/mlir/include/mlir/Analysis/Presburger/Utils.h
+++ b/mlir/include/mlir/Analysis/Presburger/Utils.h
@@ -181,8 +181,10 @@ class DivisionRepr {
   void
   removeDuplicateDivs(llvm::function_ref<bool(unsigned i, unsigned j)> merge);
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   void print(raw_ostream &os) const;
   void dump() const;
+#endif
 
 private:
   /// Each row of the Matrix represents a single division dividend. The
diff --git a/mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h b/mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
index 337314143c80c..28ba5a34b02cb 100644
--- a/mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
+++ b/mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
@@ -301,9 +301,11 @@ class ValueBoundsConstraintSet
   /// Return an expression that represents a constant.
   AffineExpr getExpr(int64_t constant);
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
   /// Debugging only: Dump the constraint set and the column-to-value/dim
   /// mapping to llvm::errs.
   void dump() const;
+#endif
 
 protected:
   /// Dimension identifier to indicate a value is index-typed. This is used for
diff --git a/mlir/lib/Analysis/FlatLinearValueConstraints.cpp b/mlir/lib/Analysis/FlatLinearValueConstraints.cpp
index e628fb152b52f..5a6dc34f27d59 100644
--- a/mlir/lib/Analysis/FlatLinearValueConstraints.cpp
+++ b/mlir/lib/Analysis/FlatLinearValueConstraints.cpp
@@ -1194,6 +1194,7 @@ void FlatLinearValueConstraints::addBound(BoundType type, Value val,
   addBound(type, pos, value);
 }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
 void FlatLinearConstraints::printSpace(raw_ostream &os) const {
   IntegerPolyhedron::printSpace(os);
   os << "(";
@@ -1221,6 +1222,7 @@ void FlatLinearValueConstraints::printSpace(raw_ostream &os) const {
     os << "Local\t";
   os << "const)\n";
 }
+#endif
 
 void FlatLinearValueConstraints::projectOut(Value val) {
   unsigned pos;
diff --git a/mlir/lib/Analysis/Presburger/IntegerRelation.cpp b/mlir/lib/Analysis/Presburger/IntegerRelation.cpp
index 75215fbab5282..f26f636d69dbd 100644
--- a/mlir/lib/Analysis/Presburger/IntegerRelation.cpp
+++ b/mlir/lib/Analysis/Presburger/IntegerRelation.cpp
@@ -2500,11 +2500,6 @@ void IntegerRelation::applyDomain(const IntegerRelation &rel) {
 
 void IntegerRelation::applyRange(const IntegerRelation &rel) { compose(rel); }
 
-void IntegerRelation::printSpace(raw_ostream &os) const {
-  space.print(os);
-  os << getNumConstraints() << " constraints\n";
-}
-
 void IntegerRelation::removeTrivialEqualities() {
   for (int i = getNumEqualities() - 1; i >= 0; --i)
     if (rangeIsZero(getEquality(i)))
@@ -2589,6 +2584,12 @@ void IntegerRelation::mergeAndCompose(const IntegerRelation &other) {
   *this = result;
 }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
+void IntegerRelation::printSpace(raw_ostream &os) const {
+  space.print(os);
+  os << getNumConstraints() << " constraints\n";
+}
+
 void IntegerRelation::print(raw_ostream &os) const {
   assert(hasConsistentState());
   printSpace(os);
@@ -2610,7 +2611,7 @@ void IntegerRelation::print(raw_ostream &os) const {
 }
 
 void IntegerRelation::dump() const { print(llvm::errs()); }
-
+#endif
 unsigned IntegerPolyhedron::insertVar(VarKind kind, unsigned pos,
                                       unsigned num) {
   assert((kind != VarKind::Domain || num == 0) &&
diff --git a/mlir/lib/Analysis/Presburger/Matrix.cpp b/mlir/lib/Analysis/Presburger/Matrix.cpp
index 134b805648d9f..1dfcd5ce3b166 100644
--- a/mlir/lib/Analysis/Presburger/Matrix.cpp
+++ b/mlir/lib/Analysis/Presburger/Matrix.cpp
@@ -397,6 +397,7 @@ Matrix<T> Matrix<T>::getSubMatrix(unsigned fromRow, unsigned toRow,
   return subMatrix;
 }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
 template <typename T>
 void Matrix<T>::print(raw_ostream &os) const {
   for (unsigned row = 0; row < nRows; ++row) {
@@ -406,6 +407,12 @@ void Matrix<T>::print(raw_ostream &os) const {
   }
 }
 
+template <typename T>
+void Matrix<T>::dump() const {
+  print(llvm::errs());
+}
+#endif
+
 /// We iterate over the `indicator` bitset, checking each bit. If a bit is 1,
 /// we append it to one matrix, and if it is zero, we append it to the other.
 template <typename T>
@@ -421,11 +428,6 @@ Matrix<T>::splitByBitset(ArrayRef<int> indicator) {
   return {rowsForOne, rowsForZero};
 }
 
-template <typename T>
-void Matrix<T>::dump() const {
-  print(llvm::errs());
-}
-
 template <typename T>
 bool Matrix<T>::hasConsistentState() const {
   if (data.size() != nRows * nReservedColumns)
diff --git a/mlir/lib/Analysis/Presburger/PWMAFunction.cpp b/mlir/lib/Analysis/Presburger/PWMAFunction.cpp
index 664670d506d53..76352fabdfd74 100644
--- a/mlir/lib/Analysis/Presburger/PWMAFunction.cpp
+++ b/mlir/lib/Analysis/Presburger/PWMAFunction.cpp
@@ -58,6 +58,7 @@ PresburgerSet PWMAFunction::getDomain() const {
   return domain;
 }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
 void MultiAffineFunction::print(raw_ostream &os) const {
   space.print(os);
   os << "Division Representation:\n";
@@ -65,6 +66,7 @@ void MultiAffineFunction::print(raw_ostream &os) const {
   os << "Output:\n";
   output.print(os);
 }
+#endif
 
 SmallVector<DynamicAPInt, 8>
 MultiAffineFunction::valueAt(ArrayRef<DynamicAPInt> point) const {
@@ -299,6 +301,7 @@ void PWMAFunction::addPiece(const Piece &piece) {
   pieces.push_back(piece);
 }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
 void PWMAFunction::print(raw_ostream &os) const {
   space.print(os);
   os << getNumPieces() << " pieces:\n";
@@ -311,6 +314,7 @@ void PWMAFunction::print(raw_ostream &os) const {
 }
 
 void PWMAFunction::dump() const { print(llvm::errs()); }
+#endif
 
 PWMAFunction PWMAFunction::unionFunction(
     const PWMAFunction &func,
diff --git a/mlir/lib/Analysis/Presburger/PresburgerRelation.cpp b/mlir/lib/Analysis/Presburger/PresburgerRelation.cpp
index 6173f774d0475..37ec90e6eeb14 100644
--- a/mlir/lib/Analysis/Presburger/PresburgerRelation.cpp
+++ b/mlir/lib/Analysis/Presburger/PresburgerRelation.cpp
@@ -1049,6 +1049,7 @@ bool PresburgerRelation::isFullDim() const {
   });
 }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
 void PresburgerRelation::print(raw_ostream &os) const {
   os << "Number of Disjuncts: " << getNumDisjuncts() << "\n";
   for (const IntegerRelation &disjunct : disjuncts) {
@@ -1058,6 +1059,7 @@ void PresburgerRelation::print(raw_ostream &os) const {
 }
 
 void PresburgerRelation::dump() const { print(llvm::errs()); }
+#endif
 
 PresburgerSet PresburgerSet::getUniverse(const PresburgerSpace &space) {
   PresburgerSet result(space);
diff --git a/mlir/lib/Analysis/Presburger/PresburgerSpace.cpp b/mlir/lib/Analysis/Presburger/PresburgerSpace.cpp
index f00796833482e..9dbc7c9bebae6 100644
--- a/mlir/lib/Analysis/Presburger/PresburgerSpace.cpp
+++ b/mlir/lib/Analysis/Presburger/PresburgerSpace.cpp
@@ -24,6 +24,7 @@ bool Identifier::isEqual(const Identifier &other) const {
   return value == other.value;
 }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
 void Identifier::print(llvm::raw_ostream &os) const {
   os << "Id<" << value << ">";
 }
@@ -32,6 +33,7 @@ void Identifier::dump() const {
   print(llvm::errs());
   llvm::errs() << "\n";
 }
+#endif
 
 PresburgerSpace PresburgerSpace::getDomainSpace() const {
   PresburgerSpace newSpace = *this;
@@ -324,6 +326,7 @@ void PresburgerSpace::mergeAndAlignSymbols(PresburgerSpace &other) {
   }
 }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
 void PresburgerSpace::print(llvm::raw_ostream &os) const {
   os << "Domain: " << getNumDomainVars() << ", "
      << "Range: " << getNumRangeVars() << ", "
@@ -356,3 +359,4 @@ void PresburgerSpace::dump() const {
   print(llvm::errs());
   llvm::errs() << "\n";
 }
+#endif
diff --git a/mlir/lib/Analysis/Presburger/Simplex.cpp b/mlir/lib/Analysis/Presburger/Simplex.cpp
index 2cdd79d42732d..bf0d0a2cdf979 100644
--- a/mlir/lib/Analysis/Presburger/Simplex.cpp
+++ b/mlir/lib/Analysis/Presburger/Simplex.cpp
@@ -2121,6 +2121,7 @@ bool Simplex::isFlatAlong(ArrayRef<DynamicAPInt> coeffs) {
   return *upOpt == *downOpt;
 }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
 void SimplexBase::print(raw_ostream &os) const {
   os << "rows = " << getNumRows() << ", columns = " << getNumColumns() << "\n";
   if (empty)
@@ -2157,6 +2158,7 @@ void SimplexBase::print(raw_ostream &os) const {
 }
 
 void SimplexBase::dump() const { print(llvm::errs()); }
+#endif
 
 bool Simplex::isRationalSubsetOf(const IntegerRelation &rel) {
   if (isEmpty())
diff --git a/mlir/lib/Analysis/Presburger/Utils.cpp b/mlir/lib/Analysis/Presburger/Utils.cpp
index 1fab4c4dcca33..4d7b4c4d89712 100644
--- a/mlir/lib/Analysis/Presburger/Utils.cpp
+++ b/mlir/lib/Analysis/Presburger/Utils.cpp
@@ -513,6 +513,7 @@ void DivisionRepr::insertDiv(unsigned pos, unsigned num) {
   denoms.insert(denoms.begin() + pos, num, DynamicAPInt(0));
 }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
 void DivisionRepr::print(raw_ostream &os) const {
   os << "Dividends:\n";
   dividends.print(os);
@@ -523,6 +524,7 @@ void DivisionRepr::print(raw_ostream &os) const {
 }
 
 void DivisionRepr::dump() const { print(llvm::errs()); }
+#endif
 
 SmallVector<DynamicAPInt, 8>
 presburger::getDynamicAPIntVec(ArrayRef<int64_t> range) {
diff --git a/mlir/lib/Interfaces/ValueBoundsOpInterface.cpp b/mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
index 6420c192b257d..cdf130b1843a8 100644
--- a/mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
+++ b/mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
@@ -881,6 +881,7 @@ ValueBoundsConstraintSet::areEquivalentSlices(MLIRContext *ctx,
   return true;
 }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
 void ValueBoundsConstraintSet::dump() const {
   llvm::errs() << "==========\nColumns:\n";
   llvm::errs() << "(column\tdim\tvalue)\n";
@@ -909,6 +910,7 @@ void ValueBoundsConstraintSet::dump() const {
   cstr.dump();
   llvm::errs() << "==========\n";
 }
+#endif
 
 ValueBoundsConstraintSet::BoundBuilder &
 ValueBoundsConstraintSet::BoundBuilder::operator[](int64_t dim) {
diff --git a/mlir/unittests/Analysis/Presburger/IntegerPolyhedronTest.cpp b/mlir/unittests/Analysis/Presburger/IntegerPolyhedronTest.cpp
index f64bb240b4ee4..e700729bf6616 100644
--- a/mlir/unittests/Analysis/Presburger/IntegerPolyhedronTest.cpp
+++ b/mlir/unittests/Analysis/Presburger/IntegerPolyhedronTest.cpp
@@ -41,11 +41,13 @@ makeSetFromConstraints(unsigned ids, ArrayRef<SmallVector<int64_t, 4>> ineqs,
   return set;
 }
 
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
 static void dump(ArrayRef<DynamicAPInt> vec) {
   for (const DynamicAPInt &x : vec)
     llvm::errs() << x << ' ';
   llvm::errs() << '\n';
 }
+#endif
 
 /// If fn is TestFunction::Sample (default):
 ///
@@ -69,16 +71,19 @@ static void checkSample(bool hasSample, const IntegerPolyhedron &poly,
 
     if (!hasSample) {
       EXPECT_FALSE(maybeSample.has_value());
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
       if (maybeSample.has_value()) {
         llvm::errs() << "findIntegerSample gave sample: ";
         dump(*maybeSample);
       }
-
+#endif
       EXPECT_TRUE(maybeLexMin.isEmpty());
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
       if (maybeLexMin.isBounded()) {
         llvm::errs() << "findIntegerLexMin gave sample: ";
         dump(*maybeLexMin);
       }
+#endif
     } else {
       ASSERT_TRUE(maybeSample.has_value());
       EXPECT_TRUE(poly.containsPoint(*maybeSample));
diff --git a/mlir/unittests/Analysis/Presburger/LinearTransformTest.cpp b/mlir/unittests/Analysis/Presburger/LinearTransformTest.cpp
index 388ac1174dcdc..d76e08a513932 100644
--- a/mlir/unittests/Analysis/Presburger/LinearTransformTest.cpp
+++ b/mlir/unittests/Analysis/Presburger/LinearTransformTest.cpp
@@ -28,10 +28,12 @@ void testColumnEchelonForm(const IntMatrix &m, unsigned expectedRank) {
     for (unsigned col = lastAllowedNonZeroCol + 1, nCols = m.getNumColumns();
          col < nCols; ++col) {
       EXPECT_EQ(rowVec[col], 0);
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
       if (rowVec[col] != 0) {
         llvm::errs() << "Failed at input matrix:\n";
         m.dump();
       }
+#endif
     }
     if (rowVec[lastAllowedNonZeroCol] != 0)
       lastAllowedNonZeroCol++;



More information about the Mlir-commits mailing list