[PATCH] D153805: Expose DataflowAnalysisContext.querySolver().

Sam McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jun 30 09:25:36 PDT 2023


sammccall accepted this revision.
sammccall added a comment.

Thanks!

As discussed offline, I had some concerns about whether there were any cases where it was safe to use formulas separate from the FC that might constrain them.
But we found some: these are formulas produced by the downstream analysis that have known structure.



================
Comment at: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h:183
+  /// been stored in flow conditions.
+  Solver::Result querySolver(llvm::DenseSet<BoolValue *> Constraints);
+
----------------
FWIW, I'd probably prefer exposing the solver object itself, having all capabilities exposed directly through DataflowAnalysisContext gives it this ugly "god object" quality and the places that we want to use it really just need arena + solver.


================
Comment at: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysisContext.h:183
+  /// been stored in flow conditions.
+  Solver::Result querySolver(llvm::DenseSet<BoolValue *> Constraints);
+
----------------
sammccall wrote:
> FWIW, I'd probably prefer exposing the solver object itself, having all capabilities exposed directly through DataflowAnalysisContext gives it this ugly "god object" quality and the places that we want to use it really just need arena + solver.
this should be ArrayRef<BoolValue*> now... sorry for the churn


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D153805/new/

https://reviews.llvm.org/D153805



More information about the cfe-commits mailing list