[clang] [clang][dataflow] Add support for serialization and deserialization. (PR #152487)

Yitzhak Mandelbaum via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 15 05:58:26 PDT 2025


================
@@ -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


More information about the cfe-commits mailing list