Skip to content

Commit

Permalink
Revert "[ConstraintElimination] Change debug output to display variab…
Browse files Browse the repository at this point in the history
…le names."

This reverts commit 869c87a.

`dumpWithNames` function should be removed
  • Loading branch information
Zain Jaffal committed Feb 15, 2023
1 parent 869c87a commit 62d0e1a
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 31 deletions.
14 changes: 5 additions & 9 deletions llvm/include/llvm/Analysis/ConstraintSystem.h
Expand Up @@ -36,17 +36,13 @@ class ConstraintSystem {
// Eliminate constraints from the system using Fourier–Motzkin elimination.
bool eliminateUsingFM();

/// Print the constraints in the system, using x0...xn as variable names.
void dump() const;

/// Returns true if there may be a solution for the constraints in the system.
bool mayHaveSolutionImpl();

/// Get list of variable names from the Value2Index map.
SmallVector<std::string> getVarNamesList() const;

public:
ConstraintSystem() {}
ConstraintSystem(const DenseMap<Value *, unsigned> &Value2Index)
: Value2Index(Value2Index) {}

bool addVariableRow(ArrayRef<int64_t> R) {
assert(Constraints.empty() || R.size() == Constraints.back().size());
// If all variable coefficients are 0, the constraint does not provide any
Expand Down Expand Up @@ -107,8 +103,8 @@ class ConstraintSystem {
/// Returns the number of rows in the constraint system.
unsigned size() const { return Constraints.size(); }

/// Print the constraints in the system.
void dump() const;
/// Print the constraints in the system, using \p Names as variable names.
void dump(ArrayRef<std::string> Names) const;
};
} // namespace llvm

Expand Down
25 changes: 10 additions & 15 deletions llvm/lib/Analysis/ConstraintSystem.cpp
Expand Up @@ -111,23 +111,10 @@ bool ConstraintSystem::mayHaveSolutionImpl() {
return all_of(Constraints, [](auto &R) { return R[0] >= 0; });
}

SmallVector<std::string> ConstraintSystem::getVarNamesList() const {
SmallVector<std::string> Names(Value2Index.size(), "");
for (auto &[V, Index] : Value2Index) {
std::string OperandName;
if (V->getName().empty())
OperandName = V->getNameOrAsOperand();
else
OperandName = std::string("%") + V->getName().str();
Names[Index - 1] = OperandName;
}
return Names;
}

void ConstraintSystem::dump() const {
void ConstraintSystem::dump(ArrayRef<std::string> Names) const {
if (Constraints.empty())
return;
SmallVector<std::string> Names = getVarNamesList();

for (const auto &Row : Constraints) {
SmallVector<std::string, 16> Parts;
for (unsigned I = 1, S = Row.size(); I < S; ++I) {
Expand All @@ -144,6 +131,14 @@ void ConstraintSystem::dump() const {
}
}

void ConstraintSystem::dump() const {
SmallVector<std::string, 16> Names;
for (unsigned i = 1; i < Constraints.back().size(); ++i)
Names.push_back("x" + std::to_string(i));
LLVM_DEBUG(dbgs() << "---\n");
dump(Names);
}

bool ConstraintSystem::mayHaveSolution() {
LLVM_DEBUG(dump());
bool HasSolution = mayHaveSolutionImpl();
Expand Down
22 changes: 15 additions & 7 deletions llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
Expand Up @@ -644,12 +644,20 @@ struct State {
} // namespace

#ifndef NDEBUG
static void dumpWithNames(const ConstraintSystem &CS,
DenseMap<Value *, unsigned> &Value2Index) {
SmallVector<std::string> Names(Value2Index.size(), "");
for (auto &KV : Value2Index) {
Names[KV.second - 1] = std::string("%") + KV.first->getName().str();
}
CS.dump(Names);
}

static void dumpConstraint(ArrayRef<int64_t> C,
const DenseMap<Value *, unsigned> &Value2Index) {
ConstraintSystem CS(Value2Index);
static void dumpWithNames(ArrayRef<int64_t> C,
DenseMap<Value *, unsigned> &Value2Index) {
ConstraintSystem CS;
CS.addVariableRowFill(C);
CS.dump();
dumpWithNames(CS, Value2Index);
}
#endif

Expand Down Expand Up @@ -997,7 +1005,7 @@ void ConstraintInfo::addFact(CmpInst::Predicate Pred, Value *A, Value *B,

LLVM_DEBUG({
dbgs() << " constraint: ";
dumpConstraint(R.Coefficients, getValue2Index(R.IsSigned));
dumpWithNames(R.Coefficients, getValue2Index(R.IsSigned));
dbgs() << "\n";
});

Expand Down Expand Up @@ -1142,8 +1150,8 @@ static bool eliminateConstraints(Function &F, DominatorTree &DT,
break;
LLVM_DEBUG({
dbgs() << "Removing ";
dumpConstraint(Info.getCS(E.IsSigned).getLastConstraint(),
Info.getValue2Index(E.IsSigned));
dumpWithNames(Info.getCS(E.IsSigned).getLastConstraint(),
Info.getValue2Index(E.IsSigned));
dbgs() << "\n";
});

Expand Down

0 comments on commit 62d0e1a

Please sign in to comment.