13#ifndef LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_CNFFORMULA_H
14#define LLVM_CLANG_ANALYSIS_FLOWSENSITIVE_CNFFORMULA_H
81 std::vector<Literal> Clauses;
93 std::vector<size_t> ClauseStarts;
97 bool KnownContradictory;
123 return C == ClauseStarts.size() - 1 ? Clauses.size() - ClauseStarts[
C]
124 : ClauseStarts[
C + 1] - ClauseStarts[
C];
151 assert(Idx < CNF->Clauses.size() &&
"Iterator out of bounds");
174 llvm::DenseMap<Variable, Atom> &Atomics);
Dataflow Directional Tag Classes.
uint32_t ClauseID
Clause identifiers are represented as positive integers.
constexpr Literal posLit(Variable V)
Returns the positive literal V.
constexpr bool isNegLit(Literal L)
Returns whether L is a negative literal.
constexpr Variable NullVar
A null boolean variable is used as a placeholder in various data structures and algorithms.
uint32_t Literal
Literals are represented as positive integers.
uint32_t Variable
Boolean variables are represented as positive integers.
CNFFormula buildCNF(const llvm::ArrayRef< const Formula * > &Formulas, llvm::DenseMap< Variable, Atom > &Atomics)
Converts the conjunction of Vals into a formula in conjunctive normal form where each clause has at l...
constexpr Literal NullLit
A null literal is used as a placeholder in various data structures and algorithms.
constexpr ClauseID NullClause
A null clause identifier is used as a placeholder in various data structures and algorithms.
constexpr Variable var(Literal L)
Returns the variable of L.
constexpr Literal negLit(Variable V)
Returns the negative literal !V.
constexpr bool isPosLit(Literal L)
Returns whether L is a positive literal.
constexpr Literal notLit(Literal L)
Returns the negated literal !L.
The JSON file list parser is used to communicate input to InstallAPI.