================ @@ -208,6 +208,27 @@ bool DataflowAnalysisContext::equivalentFormulas(const Formula &Val1, return isUnsatisfiable(std::move(Constraints)); } +llvm::DenseSet<Atom> DataflowAnalysisContext::getTransitiveClosure( + const llvm::DenseSet<Atom> &Tokens) const { + llvm::DenseSet<Atom> VisitedTokens; + // Use a worklist algorithm, with `Remaining` holding the worklist. + std::vector<Atom> Remaining(Tokens.begin(), Tokens.end()); ---------------- ymand wrote:
I don't have a good intuition - it will depend on the branching structure of the CFG. And, given that this is short lived, I don't think the difference in memory consumption will matter much. https://github.com/llvm/llvm-project/pull/152487 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits