klee
SolverCmdLine.h
Go to the documentation of this file.
1//===-- SolverCmdLine.h -----------------------------------------*- C++ -*-===//
2//
3// The KLEE Symbolic Virtual Machine
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10/*
11 * This header groups command-line options and associated declarations
12 * that are common to both KLEE and Kleaver.
13 */
14
15#ifndef KLEE_SOLVERCMDLINE_H
16#define KLEE_SOLVERCMDLINE_H
17
18#include "klee/Config/config.h"
19
20#include "llvm/ADT/ArrayRef.h"
21#include "llvm/Support/CommandLine.h"
22
23namespace klee {
24
25extern llvm::cl::opt<bool> UseFastCexSolver;
26
27extern llvm::cl::opt<bool> UseCexCache;
28
29extern llvm::cl::opt<bool> UseBranchCache;
30
31extern llvm::cl::opt<bool> UseIndependentSolver;
32
33extern llvm::cl::opt<bool> DebugValidateSolver;
34
35extern llvm::cl::opt<std::string> MinQueryTimeToLog;
36
37extern llvm::cl::opt<bool> LogTimedOutQueries;
38
39extern llvm::cl::opt<std::string> MaxCoreSolverTime;
40
41extern llvm::cl::opt<bool> UseForkedCoreSolver;
42
43extern llvm::cl::opt<bool> CoreSolverOptimizeDivides;
44
45extern llvm::cl::opt<bool> UseAssignmentValidatingSolver;
46
53};
54
55extern llvm::cl::bits<QueryLoggingSolverType> QueryLoggingOptions;
56
63};
64
65extern llvm::cl::opt<CoreSolverType> CoreSolverToUse;
66
67extern llvm::cl::opt<CoreSolverType> DebugCrossCheckCoreSolverWith;
68
69#ifdef ENABLE_METASMT
70
71enum MetaSMTBackendType {
72 METASMT_BACKEND_STP,
73 METASMT_BACKEND_Z3,
74 METASMT_BACKEND_BOOLECTOR,
75 METASMT_BACKEND_CVC4,
76 METASMT_BACKEND_YICES2
77};
78
79extern llvm::cl::opt<klee::MetaSMTBackendType> MetaSMTBackend;
80
81#endif /* ENABLE_METASMT */
82
84public:
86 static void HideOptions(llvm::cl::OptionCategory &Category);
87
89 static void HideUnrelatedOptions(llvm::cl::OptionCategory &Category);
90};
91} // namespace klee
92
93#endif /* KLEE_SOLVERCMDLINE_H */
static void HideOptions(llvm::cl::OptionCategory &Category)
Hide all options in the specified category.
static void HideUnrelatedOptions(llvm::cl::OptionCategory &Category)
Hide all options except the ones in the specified category.
Definition: main.cpp:291
llvm::cl::opt< CoreSolverType > CoreSolverToUse
llvm::cl::opt< bool > UseFastCexSolver
llvm::cl::opt< bool > LogTimedOutQueries
llvm::cl::opt< std::string > MaxCoreSolverTime
llvm::cl::opt< bool > DebugValidateSolver
llvm::cl::opt< std::string > MinQueryTimeToLog
QueryLoggingSolverType
The different query logging solvers that can be switched on/off.
Definition: SolverCmdLine.h:48
@ SOLVER_SMTLIB
Log queries passed to solver in .smt2 (SMT-LIBv2) format.
Definition: SolverCmdLine.h:52
@ SOLVER_KQUERY
Log queries passed to solver in .kquery (KQuery) format.
Definition: SolverCmdLine.h:51
@ ALL_SMTLIB
Log all queries .smt2 (SMT-LIBv2) format.
Definition: SolverCmdLine.h:50
@ ALL_KQUERY
Log all queries in .kquery (KQuery) format.
Definition: SolverCmdLine.h:49
llvm::cl::opt< CoreSolverType > DebugCrossCheckCoreSolverWith
llvm::cl::opt< bool > UseAssignmentValidatingSolver
llvm::cl::opt< bool > UseIndependentSolver
CoreSolverType
Definition: SolverCmdLine.h:57
@ NO_SOLVER
Definition: SolverCmdLine.h:62
@ METASMT_SOLVER
Definition: SolverCmdLine.h:59
@ Z3_SOLVER
Definition: SolverCmdLine.h:61
@ STP_SOLVER
Definition: SolverCmdLine.h:58
@ DUMMY_SOLVER
Definition: SolverCmdLine.h:60
llvm::cl::opt< bool > UseCexCache
llvm::cl::opt< bool > UseForkedCoreSolver
llvm::cl::opt< bool > CoreSolverOptimizeDivides
llvm::cl::bits< QueryLoggingSolverType > QueryLoggingOptions
llvm::cl::opt< bool > UseBranchCache