[all-commits] [llvm/llvm-project] 37813e: [clang][dataflow] Make `CNFFormula` externally acc...

martinboehme via All-commits all-commits at lists.llvm.org
Tue May 21 02:34:30 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 37813e09fa8b67ec858ad3c82dcf72a8ff306b03
      https://github.com/llvm/llvm-project/commit/37813e09fa8b67ec858ad3c82dcf72a8ff306b03
  Author: martinboehme <mboehme at google.com>
  Date:   2024-05-21 (Tue, 21 May 2024)

  Changed paths:
    M clang/docs/tools/clang-formatted-files.txt
    A clang/include/clang/Analysis/FlowSensitive/CNFFormula.h
    M clang/include/clang/Analysis/FlowSensitive/WatchedLiteralsSolver.h
    M clang/lib/Analysis/FlowSensitive/CMakeLists.txt
    A clang/lib/Analysis/FlowSensitive/CNFFormula.cpp
    M clang/lib/Analysis/FlowSensitive/WatchedLiteralsSolver.cpp
    M llvm/utils/gn/secondary/clang/lib/Analysis/FlowSensitive/BUILD.gn

  Log Message:
  -----------
  [clang][dataflow] Make `CNFFormula` externally accessible. (#92401)

This component can be useful when creating implementations of `Solver`,
as some
SAT solvers require the input to be in 3-CNF.

As part of making `CNFFormula` externally accessible, I have moved some
member
variables out of it that aren't really part of the representation of a
3-CNF
formula and thus live better elsewhere:

*  `WatchedHead` and `NextWatched` have been moved to
`WatchedLiteralsSolverImpl`, as they're part of the specific algorithm
used
   by that SAT solver.

* `Atomics` has become an output parameter of `buildCNF()` because it
has to do
with the relationship between a `CNFFormula` and the set of `Formula`s
it is
derived from rather than being an integral part of the representation of
a
   3-CNF formula.

I have also made all member variables private and added appropriate
accessors.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list