klee
|
Namespaces | |
namespace | bits32 |
namespace | bits64 |
namespace | expr |
namespace | floats |
namespace | ImpliedValue |
namespace | ints |
namespace | stats |
namespace | time |
namespace | util |
Typedefs | |
typedef std::pair< const MemoryObject *, const ObjectState * > | ObjectPair |
typedef std::vector< ObjectPair > | ResolutionList |
typedef ImmutableMap< const MemoryObject *, ref< ObjectState >, MemoryObjectLT > | MemoryMap |
typedef std::map< const llvm::Instruction *, std::map< const llvm::Function *, CallSiteInfo > > | CallSiteSummaryTable |
typedef generic_gep_type_iterator | gep_type_iterator |
typedef generic_gep_type_iterator< llvm::ExtractValueInst::idx_iterator > | ev_type_iterator |
typedef generic_gep_type_iterator< llvm::InsertValueInst::idx_iterator > | iv_type_iterator |
typedef generic_gep_type_iterator< llvm::SmallVector< unsigned, 4 >::const_iterator > | vce_type_iterator |
typedef std::vector< std::pair< ref< ReadExpr >, ref< ConstantExpr > > > | ImpliedValueList |
using | PTreeNodePtr = llvm::PointerIntPair< PTreeNode *, PtrBitCount, uint8_t > |
typedef Z3NodeHandle< Z3_sort > | Z3SortHandle |
typedef Z3NodeHandle< Z3_ast > | Z3ASTHandle |
typedef unsigned | TreeStreamID |
using | array2idx_ty = std::map< const Array *, std::vector< ref< Expr > > > |
using | mapIndexOptimizedExpr_ty = std::map< ref< Expr >, std::vector< ref< Expr > > > |
typedef std::unordered_set< ref< Expr >, klee::util::ExprHash, klee::util::ExprCmp > | ExprHashSet |
Enumerations | |
enum | ArrayOptimizationType { NONE , ALL , INDEX , VALUE } |
enum | QueryLoggingSolverType { ALL_KQUERY , ALL_SMTLIB , SOLVER_KQUERY , SOLVER_SMTLIB } |
The different query logging solvers that can be switched on/off. More... | |
enum | CoreSolverType { STP_SOLVER , METASMT_SOLVER , DUMMY_SOLVER , Z3_SOLVER , NO_SOLVER } |
Functions | |
llvm::raw_ostream & | operator<< (llvm::raw_ostream &os, const MemoryMap &mm) |
cl::OptionCategory | DebugCat ("Debugging options", "These are debugging options.") |
cl::OptionCategory | ExtCallsCat ("External call policy options", "These options impact external calls.") |
cl::OptionCategory | SeedingCat ("Seeding options", "These options are related to the use of seeds to start exploration.") |
cl::OptionCategory | TerminationCat ("State and overall termination options", "These options control termination of the overall KLEE " "execution and of individual states.") |
cl::OptionCategory | TestGenCat ("Test generation options", "These options impact test generation.") |
cl::opt< std::string > | MaxTime ("max-time", cl::desc("Halt execution after the specified duration. " "Set to 0s to disable (default=0s)"), cl::init("0s"), cl::cat(TerminationCat)) |
gep_type_iterator | gep_type_begin (const llvm::User *GEP) |
gep_type_iterator | gep_type_end (const llvm::User *GEP) |
gep_type_iterator | gep_type_begin (const llvm::User &GEP) |
gep_type_iterator | gep_type_end (const llvm::User &GEP) |
ev_type_iterator | ev_type_begin (const llvm::ExtractValueInst *EV) |
ev_type_iterator | ev_type_end (const llvm::ExtractValueInst *EV) |
iv_type_iterator | iv_type_begin (const llvm::InsertValueInst *IV) |
iv_type_iterator | iv_type_end (const llvm::InsertValueInst *IV) |
vce_type_iterator | vce_type_begin (const llvm::ConstantExpr *CE) |
vce_type_iterator | vce_type_end (const llvm::ConstantExpr *CE) |
template<typename ItTy > | |
generic_gep_type_iterator< ItTy > | gep_type_begin (llvm::Type *Op0, ItTy I, ItTy E) |
template<typename ItTy > | |
generic_gep_type_iterator< ItTy > | gep_type_end (llvm::Type *Op0, ItTy I, ItTy E) |
llvm::cl::OptionCategory | MergeCat ("Path merging options", "These options control path merging.") |
llvm::cl::opt< bool > | UseMerge ("use-merge", llvm::cl::init(false), llvm::cl::desc("Enable support for path merging via klee_open_merge() and " "klee_close_merge() (default=false)"), llvm::cl::cat(klee::MergeCat)) |
llvm::cl::opt< bool > | DebugLogMerge ("debug-log-merge", llvm::cl::init(false), llvm::cl::desc("Debug information for path merging (default=false)"), llvm::cl::cat(klee::MergeCat)) |
llvm::cl::opt< bool > | UseIncompleteMerge ("use-incomplete-merge", llvm::cl::init(false), llvm::cl::desc("Heuristic-based path merging (default=false)"), llvm::cl::cat(klee::MergeCat)) |
llvm::cl::opt< bool > | DebugLogIncompleteMerge ("debug-log-incomplete-merge", llvm::cl::init(false), llvm::cl::desc("Debug information for incomplete path merging (default=false)"), llvm::cl::cat(klee::MergeCat)) |
uint64_t | computeMinDistToUncovered (const KInstruction *ki, uint64_t minDistAtRA) |
bool | userSearcherRequiresMD2U () |
void | initializeSearchOptions () |
Searcher * | constructUserSearcher (Executor &executor) |
llvm::cl::opt< ArrayOptimizationType > | OptimizeArray ("optimize-array", llvm::cl::values(clEnumValN(ALL, "all", "Combining index and value transformations"), clEnumValN(INDEX, "index", "Index-based transformation"), clEnumValN(VALUE, "value", "Value-based transformation at branch (both " "concrete and concrete/symbolic)")), llvm::cl::init(NONE), llvm::cl::desc("Optimize accesses to either concrete or concrete/symbolic " "arrays. (default=false)"), llvm::cl::cat(klee::SolvingCat)) |
llvm::cl::opt< double > | ArrayValueRatio ("array-value-ratio", llvm::cl::desc("Maximum ratio of unique values to array size for which the " "value-based transformations are applied."), llvm::cl::init(1.0), llvm::cl::value_desc("Unique Values / Array Size"), llvm::cl::cat(klee::SolvingCat)) |
llvm::cl::opt< double > | ArrayValueSymbRatio ("array-value-symb-ratio", llvm::cl::desc("Maximum ratio of symbolic values to array size for which " "the mixed value-based transformations are applied."), llvm::cl::init(1.0), llvm::cl::value_desc("Symbolic Values / Array Size"), llvm::cl::cat(klee::SolvingCat)) |
llvm::cl::OptionCategory | ExprCat ("Expression building and printing options", "These options impact the way expressions are build and printed.") |
cl::OptionCategory | ModuleCat ("Module-related options", "These options affect the compile-time processing of the code.") |
Solver * | createAssignmentValidatingSolver (Solver *s) |
static uint32_t | ones (uint32_t x) |
static uint32_t | ldz (uint32_t x) |
static uint32_t | exp_base_2 (int32_t n) |
void | ComputeMultConstants64 (uint64_t multiplicand, uint64_t &add, uint64_t &sub) |
void | ComputeUDivConstants32 (uint32_t d, uint32_t &mprime, uint32_t &sh1, uint32_t &sh2) |
void | ComputeSDivConstants32 (int32_t d, int32_t &mprime, int32_t &dsign, int32_t &shpost) |
Solver * | constructSolverChain (Solver *coreSolver, std::string querySMT2LogPath, std::string baseSolverQuerySMT2LogPath, std::string queryKQueryLogPath, std::string baseSolverQueryKQueryLogPath) |
Solver * | createCoreSolver (CoreSolverType cst) |
Solver * | createDummySolver () |
Solver * | createMetaSMTSolver () |
cl::extrahelp | TimeFormatInfo ("\nTime format used by KLEE's options\n" "\n" " Time spans can be specified in two ways:\n" " 1. As positive real numbers representing seconds, e.g. '10', '3.5' " "but not 'INF', 'NaN', '1e3', '-4.5s'\n" " 2. As a sequence of natural numbers with specified units, e.g. " "'1h10min' (= '70min'), '5min10s' but not '3.5min', '8S'\n" " The following units are supported: h, min, s, ms, us, ns.\n") |
cl::OptionCategory | SolvingCat ("Constraint solving options", "These options impact constraint solving.") |
cl::opt< bool > | UseFastCexSolver ("use-fast-cex-solver", cl::init(false), cl::desc("Enable an experimental range-based solver (default=false)"), cl::cat(SolvingCat)) |
cl::opt< bool > | UseCexCache ("use-cex-cache", cl::init(true), cl::desc("Use the counterexample cache (default=true)"), cl::cat(SolvingCat)) |
cl::opt< bool > | UseBranchCache ("use-branch-cache", cl::init(true), cl::desc("Use the branch cache (default=true)"), cl::cat(SolvingCat)) |
cl::opt< bool > | UseIndependentSolver ("use-independent-solver", cl::init(true), cl::desc("Use constraint independence (default=true)"), cl::cat(SolvingCat)) |
cl::opt< bool > | DebugValidateSolver ("debug-validate-solver", cl::init(false), cl::desc("Crosscheck the results of the solver chain above the core solver " "with the results of the core solver (default=false)"), cl::cat(SolvingCat)) |
cl::opt< std::string > | MinQueryTimeToLog ("min-query-time-to-log", cl::desc("Set time threshold for queries logged in files. " "Only queries longer than threshold will be logged. (default=0s)"), cl::cat(SolvingCat)) |
cl::opt< bool > | LogTimedOutQueries ("log-timed-out-queries", cl::init(true), cl::desc("Log queries that timed out. (default=true)."), cl::cat(SolvingCat)) |
cl::opt< std::string > | MaxCoreSolverTime ("max-solver-time", cl::desc("Maximum amount of time for a single SMT query (default=0s (off)). " "Enables --use-forked-solver"), cl::cat(SolvingCat)) |
cl::opt< bool > | UseForkedCoreSolver ("use-forked-solver", cl::desc("Run the core SMT solver in a forked process (default=true)"), cl::init(true), cl::cat(SolvingCat)) |
cl::opt< bool > | CoreSolverOptimizeDivides ("solver-optimize-divides", cl::desc("Optimize constant divides into add/shift/multiplies before " "passing them to the core SMT solver (default=false)"), cl::init(false), cl::cat(SolvingCat)) |
cl::bits< QueryLoggingSolverType > | QueryLoggingOptions ("use-query-log", cl::desc("Log queries to a file. Multiple options can be specified " "separated by a comma. By default nothing is logged."), cl::values(clEnumValN(ALL_KQUERY, "all:kquery", "All queries in .kquery (KQuery) format"), clEnumValN(ALL_SMTLIB, "all:smt2", "All queries in .smt2 (SMT-LIBv2) format"), clEnumValN(SOLVER_KQUERY, "solver:kquery", "All queries reaching the solver in .kquery (KQuery) format"), clEnumValN(SOLVER_SMTLIB, "solver:smt2", "All queries reaching the solver in .smt2 (SMT-LIBv2) format")), cl::CommaSeparated, cl::cat(SolvingCat)) |
cl::opt< bool > | UseAssignmentValidatingSolver ("debug-assignment-validating-solver", cl::init(false), cl::desc("Debug the correctness of generated assignments (default=false)"), cl::cat(SolvingCat)) |
cl::opt< CoreSolverType > | CoreSolverToUse ("solver-backend", cl::desc("Specifiy the core solver backend to use"), cl::values(clEnumValN(STP_SOLVER, "stp", "STP" STP_IS_DEFAULT_STR), clEnumValN(METASMT_SOLVER, "metasmt", "metaSMT" METASMT_IS_DEFAULT_STR), clEnumValN(DUMMY_SOLVER, "dummy", "Dummy solver"), clEnumValN(Z3_SOLVER, "z3", "Z3" Z3_IS_DEFAULT_STR)), cl::init(DEFAULT_CORE_SOLVER), cl::cat(SolvingCat)) |
cl::opt< CoreSolverType > | DebugCrossCheckCoreSolverWith ("debug-crosscheck-core-solver", cl::desc("Specifiy a solver to use for crosschecking the results of the core solver"), cl::values(clEnumValN(STP_SOLVER, "stp", "STP"), clEnumValN(METASMT_SOLVER, "metasmt", "metaSMT"), clEnumValN(DUMMY_SOLVER, "dummy", "Dummy solver"), clEnumValN(Z3_SOLVER, "z3", "Z3"), clEnumValN(NO_SOLVER, "none", "Do not crosscheck (default)")), cl::init(NO_SOLVER), cl::cat(SolvingCat)) |
Solver * | createValidatingSolver (Solver *s, Solver *oracle) |
cl::OptionCategory | MiscCat ("Miscellaneous options", "") |
std::unique_ptr< llvm::raw_fd_ostream > | klee_open_output_file (const std::string &path, std::string &error) |
template<class T > | |
llvm::raw_ostream & | operator<< (llvm::raw_ostream &os, const ref< T > &e) |
template<class T > | |
std::stringstream & | operator<< (std::stringstream &os, const ref< T > &e) |
bool | operator== (const Expr &lhs, const Expr &rhs) |
bool | operator< (const Expr &lhs, const Expr &rhs) |
bool | operator!= (const Expr &lhs, const Expr &rhs) |
bool | operator> (const Expr &lhs, const Expr &rhs) |
bool | operator<= (const Expr &lhs, const Expr &rhs) |
bool | operator>= (const Expr &lhs, const Expr &rhs) |
llvm::raw_ostream & | operator<< (llvm::raw_ostream &os, const Expr &e) |
llvm::raw_ostream & | operator<< (llvm::raw_ostream &os, const Expr::Kind kind) |
std::stringstream & | operator<< (std::stringstream &os, const Expr &e) |
std::stringstream & | operator<< (std::stringstream &os, const Expr::Kind kind) |
ExprBuilder * | createDefaultExprBuilder () |
ExprBuilder * | createConstantFoldingExprBuilder (ExprBuilder *Base) |
ExprBuilder * | createSimplifyingExprBuilder (ExprBuilder *Base) |
void | findReads (ref< Expr > e, bool visitUpdates, std::vector< ref< ReadExpr > > &result) |
void | findSymbolicObjects (ref< Expr > e, std::vector< const Array * > &results) |
template<typename InputIterator > | |
void | findSymbolicObjects (InputIterator begin, InputIterator end, std::vector< const Array * > &results) |
Solver * | createCachingSolver (Solver *s) |
Solver * | createCexCachingSolver (Solver *s) |
Solver * | createFastCexSolver (Solver *s) |
Solver * | createIndependentSolver (Solver *s) |
Solver * | createKQueryLoggingSolver (Solver *s, std::string path, time::Span minQueryTimeToLog, bool logTimedOut) |
Solver * | createSMTLIBLoggingSolver (Solver *s, std::string path, time::Span minQueryTimeToLog, bool logTimedOut) |
void | klee_error (const char *msg,...) __attribute__((format(printf |
void | klee_message (const char *msg,...) __attribute__((format(printf |
void void | klee_message_to_file (const char *msg,...) __attribute__((format(printf |
void void void | klee_warning (const char *msg,...) __attribute__((format(printf |
void void void void | klee_warning_once (const void *id, const char *msg,...) __attribute__((format(printf |
std::unique_ptr< llvm::Module > | linkModules (std::vector< std::unique_ptr< llvm::Module > > &modules, llvm::StringRef entryFunction, std::string &errorMsg) |
llvm::Function * | getDirectCallTarget (const llvm::CallBase &cb, bool moduleIsFullyLinked) |
bool | functionEscapes (const llvm::Function *f) |
bool | loadFile (const std::string &libraryName, llvm::LLVMContext &context, std::vector< std::unique_ptr< llvm::Module > > &modules, std::string &errorMsg) |
void | printVersion (llvm::raw_ostream &OS) |
Variables | |
cl::opt< std::string > | MaxTime |
static uint64_t * | gTheArgsP |
llvm::cl::opt< bool > | UseMerge |
llvm::cl::opt< bool > | DebugLogMerge |
llvm::cl::opt< bool > | DebugLogIncompleteMerge |
constexpr int | PtrBitCount = 3 |
llvm::cl::opt< bool > | UseIncompleteMerge |
llvm::cl::OptionCategory | ExprCat |
const char | ALL_QUERIES_SMT2_FILE_NAME [] ="all-queries.smt2" |
const char | SOLVER_QUERIES_SMT2_FILE_NAME [] ="solver-queries.smt2" |
const char | ALL_QUERIES_KQUERY_FILE_NAME [] ="all-queries.kquery" |
const char | SOLVER_QUERIES_KQUERY_FILE_NAME [] ="solver-queries.kquery" |
llvm::cl::opt< bool > | UseFastCexSolver |
llvm::cl::opt< bool > | UseCexCache |
llvm::cl::opt< bool > | UseBranchCache |
llvm::cl::opt< bool > | UseIndependentSolver |
llvm::cl::opt< bool > | DebugValidateSolver |
llvm::cl::opt< std::string > | MinQueryTimeToLog |
llvm::cl::opt< bool > | LogTimedOutQueries |
llvm::cl::opt< std::string > | MaxCoreSolverTime |
llvm::cl::opt< bool > | UseForkedCoreSolver |
llvm::cl::opt< bool > | CoreSolverOptimizeDivides |
llvm::cl::opt< bool > | UseAssignmentValidatingSolver |
llvm::cl::bits< QueryLoggingSolverType > | QueryLoggingOptions |
llvm::cl::opt< CoreSolverType > | CoreSolverToUse |
llvm::cl::opt< CoreSolverType > | DebugCrossCheckCoreSolverWith |
StatisticManager * | theStatisticManager = 0 |
const size_t | BUFSIZE = 128 * 1024 |
FILE * | klee_warning_file = NULL |
FILE * | klee_message_file = NULL |
void | noreturn |
llvm::cl::OptionCategory | DebugCat |
llvm::cl::OptionCategory | MergeCat |
llvm::cl::OptionCategory | MiscCat |
llvm::cl::OptionCategory | ModuleCat |
llvm::cl::OptionCategory | SeedingCat |
llvm::cl::OptionCategory | SolvingCat |
llvm::cl::OptionCategory | TerminationCat |
llvm::cl::OptionCategory | TestGenCat |
using klee::array2idx_ty = typedef std::map<const Array *, std::vector<ref<Expr> >> |
Definition at line 28 of file ArrayExprOptimizer.h.
typedef std::map<const llvm::Instruction *, std::map<const llvm::Function *, CallSiteInfo> > klee::CallSiteSummaryTable |
Definition at line 37 of file CallPathManager.h.
typedef generic_gep_type_iterator<llvm::ExtractValueInst::idx_iterator> klee::ev_type_iterator |
Definition at line 106 of file GetElementPtrTypeIterator.h.
typedef std::unordered_set<ref<Expr>, klee::util::ExprHash, klee::util::ExprCmp> klee::ExprHashSet |
Definition at line 39 of file ExprHashMap.h.
Definition at line 105 of file GetElementPtrTypeIterator.h.
typedef std::vector< std::pair<ref<ReadExpr>, ref<ConstantExpr> > > klee::ImpliedValueList |
Definition at line 30 of file ImpliedValue.h.
typedef generic_gep_type_iterator<llvm::InsertValueInst::idx_iterator> klee::iv_type_iterator |
Definition at line 107 of file GetElementPtrTypeIterator.h.
using klee::mapIndexOptimizedExpr_ty = typedef std::map<ref<Expr>, std::vector<ref<Expr> >> |
Definition at line 29 of file ArrayExprOptimizer.h.
typedef ImmutableMap<const MemoryObject *, ref<ObjectState>, MemoryObjectLT> klee::MemoryMap |
Definition at line 36 of file AddressSpace.h.
typedef std::pair<const MemoryObject*, const ObjectState*> klee::ObjectPair |
Definition at line 27 of file AddressSpace.h.
using klee::PTreeNodePtr = typedef llvm::PointerIntPair<PTreeNode *, PtrBitCount, uint8_t> |
typedef std::vector<ObjectPair> klee::ResolutionList |
Definition at line 28 of file AddressSpace.h.
typedef unsigned klee::TreeStreamID |
Definition at line 18 of file TreeStream.h.
typedef generic_gep_type_iterator<llvm::SmallVector<unsigned, 4>::const_iterator> klee::vce_type_iterator |
Definition at line 108 of file GetElementPtrTypeIterator.h.
typedef Z3NodeHandle<Z3_ast> klee::Z3ASTHandle |
Definition at line 91 of file Z3Builder.h.
typedef Z3NodeHandle<Z3_sort> klee::Z3SortHandle |
Definition at line 86 of file Z3Builder.h.
Enumerator | |
---|---|
NONE | |
ALL | |
INDEX | |
VALUE |
Definition at line 26 of file ArrayExprOptimizer.h.
enum klee::CoreSolverType |
Enumerator | |
---|---|
STP_SOLVER | |
METASMT_SOLVER | |
DUMMY_SOLVER | |
Z3_SOLVER | |
NO_SOLVER |
Definition at line 57 of file SolverCmdLine.h.
The different query logging solvers that can be switched on/off.
Definition at line 48 of file SolverCmdLine.h.
llvm::cl::opt< double > klee::ArrayValueRatio | ( | "array-value-ratio" | , |
llvm::cl::desc("Maximum ratio of unique values to array size for which the " "value-based transformations are applied.") | , | ||
llvm::cl::init(1.0) | , | ||
llvm::cl::value_desc("Unique Values / Array Size") | , | ||
llvm::cl::cat(klee::SolvingCat) | |||
) |
Referenced by klee::ExprOptimizer::buildConstantSelectExpr(), and klee::ExprOptimizer::buildMixedSelectExpr().
llvm::cl::opt< double > klee::ArrayValueSymbRatio | ( | "array-value-symb-ratio" | , |
llvm::cl::desc("Maximum ratio of symbolic values to array size for which " "the mixed value-based transformations are applied.") | , | ||
llvm::cl::init(1.0) | , | ||
llvm::cl::value_desc("Symbolic Values / Array Size") | , | ||
llvm::cl::cat(klee::SolvingCat) | |||
) |
uint64_t klee::computeMinDistToUncovered | ( | const KInstruction * | ki, |
uint64_t | minDistAtRA | ||
) |
Definition at line 755 of file StatsTracker.cpp.
References klee::StatisticManager::getIndexedValue(), klee::InstructionInfo::id, klee::KInstruction::info, klee::stats::minDistToReturn, klee::stats::minDistToUncovered, and theStatisticManager.
Referenced by klee::StatsTracker::computeReachableUncovered(), klee::Executor::dumpStates(), klee::StatsTracker::framePushed(), and klee::WeightedRandomSearcher::getWeight().
void klee::ComputeMultConstants64 | ( | uint64_t | x, |
uint64_t & | add_out, | ||
uint64_t & | sub_out | ||
) |
ComputeMultConstants64 - Compute add and sub such that add-sub==x, while attempting to minimize the number of bits in add and sub combined.
Definition at line 82 of file ConstantDivision.cpp.
References add, klee::bits64::indexOfRightmostBit(), klee::bits64::indexOfSingleBit(), klee::bits64::isolateRightmostBit(), and klee::floats::sub().
void klee::ComputeSDivConstants32 | ( | int32_t | d, |
int32_t & | mprime, | ||
int32_t & | dsign, | ||
int32_t & | shpost | ||
) |
Compute the constants to perform a quicker equivalent of a division of some 32-bit signed integer n by a known constant d (also a 32-bit signed integer). The constants to compute n/d without explicit division will be stored in mprime, dsign, and shpost (signed 32-bit integers).
d | - denominator (divisor) | |
[out] | mprime | |
[out] | dsign | |
[out] | shpost |
Definition at line 128 of file ConstantDivision.cpp.
References ABS, exp_base_2(), LOG2_CEIL, TWO_TO_THE_31_S64, TWO_TO_THE_32_U64, and XSIGN.
void klee::ComputeUDivConstants32 | ( | uint32_t | d, |
uint32_t & | mprime, | ||
uint32_t & | sh1, | ||
uint32_t & | sh2 | ||
) |
Compute the constants to perform a quicker equivalent of a division of some 32-bit unsigned integer n by a known constant d (also a 32-bit unsigned integer). The constants to compute n/d without explicit division will be stored in mprime, sh1, and sh2 (unsigned 32-bit integers).
d | - denominator (divisor) | |
[out] | mprime | |
[out] | sh1 | |
[out] | sh2 |
Definition at line 118 of file ConstantDivision.cpp.
References exp_base_2(), LOG2_CEIL, and TWO_TO_THE_32_U64.
Solver * klee::constructSolverChain | ( | Solver * | coreSolver, |
std::string | querySMT2LogPath, | ||
std::string | baseSolverQuerySMT2LogPath, | ||
std::string | queryKQueryLogPath, | ||
std::string | baseSolverQueryKQueryLogPath | ||
) |
Definition at line 23 of file ConstructSolverChain.cpp.
References ALL_KQUERY, ALL_SMTLIB, createAssignmentValidatingSolver(), createCachingSolver(), createCexCachingSolver(), createCoreSolver(), createFastCexSolver(), createIndependentSolver(), createKQueryLoggingSolver(), createSMTLIBLoggingSolver(), createValidatingSolver(), DebugCrossCheckCoreSolverWith, DebugValidateSolver, klee_message(), LogTimedOutQueries, MinQueryTimeToLog, NO_SOLVER, QueryLoggingOptions, SOLVER_KQUERY, SOLVER_SMTLIB, UseAssignmentValidatingSolver, UseBranchCache, UseCexCache, UseFastCexSolver, and UseIndependentSolver.
Referenced by EvaluateInputAST(), and klee::Executor::Executor().
Definition at line 125 of file UserSearcher.cpp.
References klee::Executor::getHandler(), klee::InterpreterHandler::getInfoStream(), getNewSearcher(), klee::Searcher::printName(), klee::Executor::processTree, klee::Executor::setMergingSearcher(), klee::Executor::theRNG, and UseMerge.
Referenced by klee::Executor::run().
cl::opt< bool > klee::CoreSolverOptimizeDivides | ( | "solver-optimize-divides" | , |
cl::desc("Optimize constant divides into add/shift/multiplies before " "passing them to the core SMT solver (default=false)") | , | ||
cl::init(false) | , | ||
cl::cat(SolvingCat) | |||
) |
cl::opt< CoreSolverType > klee::CoreSolverToUse | ( | "solver-backend" | , |
cl::desc("Specifiy the core solver backend to use") | , | ||
cl::values(clEnumValN(STP_SOLVER, "stp", "STP" STP_IS_DEFAULT_STR), clEnumValN(METASMT_SOLVER, "metasmt", "metaSMT" METASMT_IS_DEFAULT_STR), clEnumValN(DUMMY_SOLVER, "dummy", "Dummy solver"), clEnumValN(Z3_SOLVER, "z3", "Z3" Z3_IS_DEFAULT_STR)) | , | ||
cl::init(DEFAULT_CORE_SOLVER) | , | ||
cl::cat(SolvingCat) | |||
) |
createAssignmentValidatingSolver - Create a solver that when requested for an assignment will check that the computed assignment satisfies the Query.
s | - The underlying solver to use. |
Definition at line 151 of file AssignmentValidatingSolver.cpp.
Referenced by constructSolverChain().
createCachingSolver - Create a solver which will cache the queries in memory (without eviction).
s | - The underlying solver to use. |
Definition at line 258 of file CachingSolver.cpp.
Referenced by constructSolverChain().
createCexCachingSolver - Create a counterexample caching solver. This is a more sophisticated cache which records counterexamples for a constraint set and uses subset/superset relations among constraints to try and quickly find satisfying assignments.
s | - The underlying solver to use. |
Definition at line 386 of file CexCachingSolver.cpp.
Referenced by constructSolverChain().
ExprBuilder * klee::createConstantFoldingExprBuilder | ( | ExprBuilder * | Base | ) |
createConstantFoldingExprBuilder - Create an expression builder which folds constant expressions.
Base - The base builder to use when constructing expressions.
Definition at line 1061 of file ExprBuilder.cpp.
Referenced by main().
Solver * klee::createCoreSolver | ( | CoreSolverType | cst | ) |
Definition at line 25 of file CoreSolver.cpp.
References CoreSolverOptimizeDivides, createDummySolver(), createMetaSMTSolver(), DUMMY_SOLVER, klee_message(), METASMT_SOLVER, NO_SOLVER, STP_SOLVER, UseForkedCoreSolver, and Z3_SOLVER.
Referenced by constructSolverChain(), EvaluateInputAST(), and klee::Executor::Executor().
ExprBuilder * klee::createDefaultExprBuilder | ( | ) |
createDefaultExprBuilder - Create an expression builder which does no folding.
Definition at line 1057 of file ExprBuilder.cpp.
Referenced by klee::ExprOptimizer::buildConstantSelectExpr(), klee::ExprOptimizer::buildMixedSelectExpr(), and main().
Solver * klee::createDummySolver | ( | ) |
createDummySolver - Create a dummy solver implementation which always fails.
Definition at line 62 of file DummySolver.cpp.
Referenced by createCoreSolver().
createFastCexSolver - Create a "fast counterexample solver", which tries to quickly compute a satisfying assignment for a constraint set using value propogation and range analysis.
s | - The underlying solver to use. |
Definition at line 1141 of file FastCexSolver.cpp.
Referenced by constructSolverChain().
createIndependentSolver - Create a solver which will eliminate any unnecessary constraints before propogating the query to the underlying solver.
s | - The underlying solver to use. |
Definition at line 560 of file IndependentSolver.cpp.
Referenced by constructSolverChain().
Solver * klee::createKQueryLoggingSolver | ( | Solver * | s, |
std::string | path, | ||
time::Span | minQueryTimeToLog, | ||
bool | logTimedOut | ||
) |
createKQueryLoggingSolver - Create a solver which will forward all queries after writing them to the given path in .kquery format.
Definition at line 63 of file KQueryLoggingSolver.cpp.
Referenced by constructSolverChain().
Solver * klee::createMetaSMTSolver | ( | ) |
createMetaSMTSolver - Create a solver using the metaSMT backend set by the option MetaSMTBackend.
Referenced by createCoreSolver().
ExprBuilder * klee::createSimplifyingExprBuilder | ( | ExprBuilder * | Base | ) |
createSimplifyingExprBuilder - Create an expression builder which attemps to fold redundant expressions and normalize expressions for improved caching.
Base - The base builder to use when constructing expressions.
Definition at line 1065 of file ExprBuilder.cpp.
Referenced by main().
Solver * klee::createSMTLIBLoggingSolver | ( | Solver * | s, |
std::string | path, | ||
time::Span | minQueryTimeToLog, | ||
bool | logTimedOut | ||
) |
createSMTLIBLoggingSolver - Create a solver which will forward all queries after writing them to the given path in .smt2 format.
Definition at line 58 of file SMTLIBLoggingSolver.cpp.
Referenced by constructSolverChain().
createValidatingSolver - Create a solver which will validate all query results against an oracle, used for testing that an optimized solver has the same results as an unoptimized one. This solver will assert on any mismatches.
s | - The primary underlying solver to use. |
oracle | - The solver to check query results against. |
Definition at line 139 of file ValidatingSolver.cpp.
Referenced by constructSolverChain().
cl::OptionCategory klee::DebugCat | ( | "Debugging options" | , |
"These are debugging options." | |||
) |
cl::opt< CoreSolverType > klee::DebugCrossCheckCoreSolverWith | ( | "debug-crosscheck-core-solver" | , |
cl::desc("Specifiy a solver to use for crosschecking the results of the core solver") | , | ||
cl::values(clEnumValN(STP_SOLVER, "stp", "STP"), clEnumValN(METASMT_SOLVER, "metasmt", "metaSMT"), clEnumValN(DUMMY_SOLVER, "dummy", "Dummy solver"), clEnumValN(Z3_SOLVER, "z3", "Z3"), clEnumValN(NO_SOLVER, "none", "Do not crosscheck (default)")) | , | ||
cl::init(NO_SOLVER) | , | ||
cl::cat(SolvingCat) | |||
) |
llvm::cl::opt< bool > klee::DebugLogIncompleteMerge | ( | "debug-log-incomplete-merge" | , |
llvm::cl::init(false) | , | ||
llvm::cl::desc("Debug information for incomplete path merging (default=false)") | , | ||
llvm::cl::cat(klee::MergeCat) | |||
) |
llvm::cl::opt< bool > klee::DebugLogMerge | ( | "debug-log-merge" | , |
llvm::cl::init(false) | , | ||
llvm::cl::desc("Debug information for path merging (default=false)") | , | ||
llvm::cl::cat(klee::MergeCat) | |||
) |
cl::opt< bool > klee::DebugValidateSolver | ( | "debug-validate-solver" | , |
cl::init(false) | , | ||
cl::desc("Crosscheck the results of the solver chain above the core solver " "with the results of the core solver (default=false)") | , | ||
cl::cat(SolvingCat) | |||
) |
|
inline |
Definition at line 125 of file GetElementPtrTypeIterator.h.
References klee::generic_gep_type_iterator< ItTy >::begin().
Referenced by klee::Executor::bindInstructionConstants().
|
inline |
Definition at line 129 of file GetElementPtrTypeIterator.h.
References klee::generic_gep_type_iterator< ItTy >::end().
Referenced by klee::Executor::bindInstructionConstants().
|
static |
Definition at line 65 of file ConstantDivision.cpp.
Referenced by ComputeSDivConstants32(), and ComputeUDivConstants32().
llvm::cl::OptionCategory klee::ExprCat | ( | "Expression building and printing options" | , |
"These options impact the way expressions are build and printed." | |||
) |
cl::OptionCategory klee::ExtCallsCat | ( | "External call policy options" | , |
"These options impact external calls." | |||
) |
Find all ReadExprs used in the expression DAG. If visitUpdates is true then this will including those reachable by traversing update lists. Note that this may be slow and return a large number of results.
Definition at line 19 of file ExprUtil.cpp.
References klee::ref< T >::get(), klee::Expr::getKid(), and klee::Expr::getNumKids().
Referenced by klee::ImpliedValue::checkForImpliedValues(), IndependentElementSet::IndependentElementSet(), and klee::SeedInfo::patchSeed().
void klee::findSymbolicObjects | ( | InputIterator | begin, |
InputIterator | end, | ||
std::vector< const Array * > & | results | ||
) |
Return a list of all unique symbolic objects referenced by the given expression range.
Definition at line 124 of file ExprUtil.cpp.
References klee::ExprVisitor::visit().
Return a list of all unique symbolic objects referenced by the given expression.
Definition at line 132 of file ExprUtil.cpp.
References findSymbolicObjects().
Referenced by findSymbolicObjects(), and CexCachingSolver::getAssignment().
bool klee::functionEscapes | ( | const llvm::Function * | f | ) |
Return true iff the given Function value is used in something other than a direct call (or a constant expression that terminates in a direct call).
Referenced by klee::KModule::manifest(), and valueIsOnlyCalled().
|
inline |
Definition at line 117 of file GetElementPtrTypeIterator.h.
References klee::generic_gep_type_iterator< ItTy >::begin().
|
inline |
Definition at line 110 of file GetElementPtrTypeIterator.h.
References klee::generic_gep_type_iterator< ItTy >::begin().
Referenced by klee::Executor::bindInstructionConstants(), and klee::Executor::evalConstantExpr().
|
inline |
Definition at line 150 of file GetElementPtrTypeIterator.h.
References klee::generic_gep_type_iterator< ItTy >::begin().
|
inline |
Definition at line 121 of file GetElementPtrTypeIterator.h.
References klee::generic_gep_type_iterator< ItTy >::end().
|
inline |
Definition at line 114 of file GetElementPtrTypeIterator.h.
References klee::generic_gep_type_iterator< ItTy >::end().
Referenced by klee::Executor::bindInstructionConstants(), and klee::Executor::evalConstantExpr().
|
inline |
Definition at line 156 of file GetElementPtrTypeIterator.h.
References klee::generic_gep_type_iterator< ItTy >::end().
llvm::Function * klee::getDirectCallTarget | ( | const llvm::CallBase & | cb, |
bool | moduleIsFullyLinked | ||
) |
Return the Function* target of a Call or Invoke instruction, or null if it cannot be determined (should be only for indirect calls, although complicated constant expressions might be another possibility).
If moduleIsFullyLinked
is set to true it will be assumed that the module containing the llvm::CallSite
(llvm::CallBase
on LLVM 8+) is fully linked. This assumption allows resolution of functions that are marked as overridable.
Referenced by klee::StatsTracker::computeReachableUncovered(), klee::Executor::getAllocationAlignment(), and instructionIsCoverable().
void klee::initializeSearchOptions | ( | ) |
Definition at line 84 of file UserSearcher.cpp.
References klee_warning(), and UseMerge.
Referenced by klee::Executor::Executor().
|
inline |
Definition at line 133 of file GetElementPtrTypeIterator.h.
References klee::generic_gep_type_iterator< ItTy >::begin().
Referenced by klee::Executor::bindInstructionConstants().
|
inline |
Definition at line 137 of file GetElementPtrTypeIterator.h.
References klee::generic_gep_type_iterator< ItTy >::end().
Referenced by klee::Executor::bindInstructionConstants().
void klee::klee_error | ( | const char * | msg, |
... | |||
) |
Print "KLEE: ERROR: " followed by the msg in printf format and a newline on stderr and to warnings.txt, then exit with an error.
Definition at line 145 of file ErrorHandling.cpp.
References errorPrefix, and klee_vmessage().
Referenced by klee::MemoryManager::allocateFixed(), klee::Executor::allocateGlobalObjects(), klee::Executor::callExternalFunction(), klee::KModule::checkModule(), klee::Executor::evalConstant(), klee::Executor::evalConstantExpr(), klee::Executor::Executor(), CexCachingSolver::getAssignment(), klee::PTree::getNextId(), klee::util::GetTotalMallocUsage(), klee::Executor::initializeGlobalObjects(), injectStaticConstructorsAndDestructors(), KleeHandler::KleeHandler(), klee::KModule::link(), linkWithUclibc(), main(), klee::MemoryManager::MemoryManager(), klee::KModule::optimiseAndPrepare(), preparePOSIX(), KleeHandler::processTestCase(), QueryLoggingSolver::QueryLoggingSolver(), klee::Executor::runFunctionAsMain(), klee::FunctionAliasPass::runOnModule(), klee::Executor::setModule(), klee::time::Span::Span(), klee::StatsTracker::StatsTracker(), valueIsOnlyCalled(), klee::StatsTracker::writeStatsHeader(), and klee::StatsTracker::writeStatsLine().
void klee::klee_message | ( | const char * | msg, |
... | |||
) |
Print "KLEE: " followed by the msg in printf format and a newline on stderr and to messages.txt.
Definition at line 130 of file ErrorHandling.cpp.
References klee_vmessage().
Referenced by klee::KModule::addInternalFunction(), constructSolverChain(), createCoreSolver(), klee::Executor::doDumpStates(), klee::Executor::executeAlloc(), klee::Executor::Executor(), KleeHandler::KleeHandler(), main(), klee::MemoryManager::MemoryManager(), klee::Executor::run(), klee::FunctionAliasPass::runOnModule(), klee::BatchingSearcher::selectState(), klee::Executor::terminateStateOnError(), and klee::IterativeDeepeningTimeSearcher::update().
void klee::klee_message_to_file | ( | const char * | msg, |
... | |||
) |
Print "KLEE: " followed by the msg in printf format and a newline to messages.txt.
Definition at line 138 of file ErrorHandling.cpp.
References klee_vmessage().
std::unique_ptr< llvm::raw_fd_ostream > klee::klee_open_output_file | ( | const std::string & | path, |
std::string & | error | ||
) |
Definition at line 24 of file FileHandling.cpp.
Referenced by klee::Executor::Executor(), KleeHandler::openOutputFile(), and QueryLoggingSolver::QueryLoggingSolver().
void klee::klee_warning | ( | const char * | msg, |
... | |||
) |
Print "KLEE: WARNING: " followed by the msg in printf format and a newline on stderr and to warnings.txt.
Definition at line 153 of file ErrorHandling.cpp.
References klee_vmessage(), and warningPrefix.
Referenced by klee::TimerGroup::add(), klee::Executor::addConstraint(), klee::KModule::addInternalFunction(), klee::MemoryManager::allocate(), klee::Executor::allocateGlobalObjects(), klee::Executor::callExternalFunction(), klee::Executor::checkMemoryUsage(), klee::FunctionAliasPass::checkType(), klee::Executor::executeCall(), klee::Executor::executeInstruction(), klee::ObjectState::flushToConcreteStore(), klee::Executor::getConstraintLog(), klee::Executor::getSymbolicSolution(), klee::time::getUserTime(), klee::AssignmentGenerator::helperGenerateAssignment(), klee::ExprOptimizer::optimizeExpr(), klee::Executor::run(), klee::RaiseAsmPass::runOnModule(), klee::FunctionAliasPass::runOnModule(), klee::StatsTracker::StatsTracker(), klee::Executor::toConstant(), klee::StatsTracker::writeStatsLine(), and klee::StatsTracker::~StatsTracker().
void klee::klee_warning_once | ( | const void * | id, |
const char * | msg, | ||
... | |||
) |
Print "KLEE: WARNING: " followed by the msg in printf format and a newline on stderr and to warnings.txt. However, the warning is only printed once for each unique (id, msg) pair (as pointers).
Definition at line 161 of file ErrorHandling.cpp.
References klee_vmessage(), and warningOncePrefix.
Referenced by klee::MemoryManager::allocate(), klee::Executor::branchingPermitted(), klee::Executor::callExternalFunction(), klee::Executor::evalConstant(), klee::Executor::executeCall(), klee::Executor::executeInstruction(), klee::Executor::getAllocationAlignment(), klee::SeedInfo::getNextInput(), klee::Executor::maxStaticPctChecks(), klee::ObjectState::read8(), klee::SpecialFunctionHandler::readStringAtAddress(), klee::IntrinsicCleanerPass::runOnBasicBlock(), klee::Executor::terminateState(), klee::Executor::toConstant(), and klee::ObjectState::write8().
|
static |
Definition at line 54 of file ConstantDivision.cpp.
References ones().
std::unique_ptr< llvm::Module > klee::linkModules | ( | std::vector< std::unique_ptr< llvm::Module > > & | modules, |
llvm::StringRef | entryFunction, | ||
std::string & | errorMsg | ||
) |
Links all the modules together into one and returns it.
All the modules which are used for resolving entities are freed, all the remaining ones are preserved.
modules | List of modules to link together: if resolveOnly true, everything is linked against the first entry. |
entryFunction | if set, missing functions of the module containing the entry function will be solved. |
Definition at line 146 of file ModuleUtil.cpp.
References GetAllUndefinedSymbols(), and linkTwoModules().
Referenced by klee::KModule::link(), linkTwoModules(), and main().
bool klee::loadFile | ( | const std::string & | libraryName, |
llvm::LLVMContext & | context, | ||
std::vector< std::unique_ptr< llvm::Module > > & | modules, | ||
std::string & | errorMsg | ||
) |
Loads the file libraryName and reads all possible modules out of it.
Different file types are possible:
libraryName | library to read |
modules | contains extracted modules |
errorMsg | contains the error description in case the file could not be loaded |
Referenced by main(), klee::Executor::setModule(), and valueIsOnlyCalled().
cl::opt< bool > klee::LogTimedOutQueries | ( | "log-timed-out-queries" | , |
cl::init(true) | , | ||
cl::desc("Log queries that timed out. (default=true).") | , | ||
cl::cat(SolvingCat) | |||
) |
cl::opt< std::string > klee::MaxCoreSolverTime | ( | "max-solver-time" | , |
cl::desc("Maximum amount of time for a single SMT query (default=0s (off)). " "Enables --use-forked-solver") | , | ||
cl::cat(SolvingCat) | |||
) |
cl::opt< std::string > klee::MaxTime | ( | "max-time" | , |
cl::desc("Halt execution after the specified duration. " "Set to 0s to disable (default=0s)") | , | ||
cl::init("0s") | , | ||
cl::cat(TerminationCat) | |||
) |
llvm::cl::OptionCategory klee::MergeCat | ( | "Path merging options" | , |
"These options control path merging." | |||
) |
cl::opt< std::string > klee::MinQueryTimeToLog | ( | "min-query-time-to-log" | , |
cl::desc("Set time threshold for queries logged in files. " "Only queries longer than threshold will be logged. (default=0s)") | , | ||
cl::cat(SolvingCat) | |||
) |
cl::OptionCategory klee::MiscCat | ( | "Miscellaneous options" | , |
"" | |||
) |
cl::OptionCategory klee::ModuleCat | ( | "Module-related options" | , |
"These options affect the compile-time processing of the code." | |||
) |
|
static |
Definition at line 43 of file ConstantDivision.cpp.
Referenced by ldz().
Definition at line 310 of file Expr.h.
References klee::Expr::compare().
|
inline |
Definition at line 332 of file Expr.h.
References klee::Expr::print().
|
inline |
Definition at line 337 of file Expr.h.
References klee::Expr::printKind().
llvm::raw_ostream & klee::operator<< | ( | llvm::raw_ostream & | os, |
const MemoryMap & | mm | ||
) |
Definition at line 141 of file ExecutionState.cpp.
References klee::ImmutableMap< K, D, CMP >::begin(), and klee::ImmutableMap< K, D, CMP >::end().
|
inline |
|
inline |
Definition at line 342 of file Expr.h.
References klee::Expr::print().
|
inline |
Definition at line 350 of file Expr.h.
References klee::Expr::printKind().
|
inline |
Definition at line 306 of file Expr.h.
References klee::Expr::compare().
llvm::cl::opt< ArrayOptimizationType > klee::OptimizeArray | ( | "optimize-array" | , |
llvm::cl::values(clEnumValN(ALL, "all", "Combining index and value transformations"), clEnumValN(INDEX, "index", "Index-based transformation"), clEnumValN(VALUE, "value", "Value-based transformation at branch (both " "concrete and concrete/symbolic)")) | , | ||
llvm::cl::init(NONE) | , | ||
llvm::cl::desc("Optimize accesses to either concrete or concrete/symbolic " "arrays. (default=false)") | , | ||
llvm::cl::cat(klee::SolvingCat) | |||
) |
void klee::printVersion | ( | llvm::raw_ostream & | OS | ) |
Definition at line 18 of file PrintVersion.cpp.
Referenced by main(), and parseArguments().
cl::bits< QueryLoggingSolverType > klee::QueryLoggingOptions | ( | "use-query-log" | , |
cl::desc("Log queries to a file. Multiple options can be specified " "separated by a comma. By default nothing is logged.") | , | ||
cl::values(clEnumValN(ALL_KQUERY, "all:kquery", "All queries in .kquery (KQuery) format"), clEnumValN(ALL_SMTLIB, "all:smt2", "All queries in .smt2 (SMT-LIBv2) format"), clEnumValN(SOLVER_KQUERY, "solver:kquery", "All queries reaching the solver in .kquery (KQuery) format"), clEnumValN(SOLVER_SMTLIB, "solver:smt2", "All queries reaching the solver in .smt2 (SMT-LIBv2) format")) | , | ||
cl::CommaSeparated | , | ||
cl::cat(SolvingCat) | |||
) |
cl::OptionCategory klee::SeedingCat | ( | "Seeding options" | , |
"These options are related to the use of seeds to start exploration." | |||
) |
cl::OptionCategory klee::SolvingCat | ( | "Constraint solving options" | , |
"These options impact constraint solving." | |||
) |
cl::OptionCategory klee::TerminationCat | ( | "State and overall termination options" | , |
"These options control termination of the overall KLEE " "execution and of individual states." | |||
) |
cl::OptionCategory klee::TestGenCat | ( | "Test generation options" | , |
"These options impact test generation." | |||
) |
cl::extrahelp klee::TimeFormatInfo | ( | "\nTime format used by KLEE's options\n" "\n" " Time spans can be specified in two ways:\n" " 1. As positive real numbers representing | seconds, |
e.g. '10' | , | ||
'3.5' " "but not 'INF' | , | ||
'NaN' | , | ||
'1e3' | , | ||
'-4.5s'\n" " 2. As a sequence of natural numbers with specified | units, | ||
e.g. " " '1h10min' | ='70min', | ||
'5min10s' but not '3.5min' | , | ||
'8S'\n" " The following units are supported:h | , | ||
min | , | ||
s | , | ||
ms | , | ||
us | , | ||
ns.\n" | |||
) |
cl::opt< bool > klee::UseAssignmentValidatingSolver | ( | "debug-assignment-validating-solver" | , |
cl::init(false) | , | ||
cl::desc("Debug the correctness of generated assignments (default=false)") | , | ||
cl::cat(SolvingCat) | |||
) |
cl::opt< bool > klee::UseBranchCache | ( | "use-branch-cache" | , |
cl::init(true) | , | ||
cl::desc("Use the branch cache (default=true)") | , | ||
cl::cat(SolvingCat) | |||
) |
cl::opt< bool > klee::UseCexCache | ( | "use-cex-cache" | , |
cl::init(true) | , | ||
cl::desc("Use the counterexample cache (default=true)") | , | ||
cl::cat(SolvingCat) | |||
) |
cl::opt< bool > klee::UseFastCexSolver | ( | "use-fast-cex-solver" | , |
cl::init(false) | , | ||
cl::desc("Enable an experimental range-based solver (default=false)") | , | ||
cl::cat(SolvingCat) | |||
) |
cl::opt< bool > klee::UseForkedCoreSolver | ( | "use-forked-solver" | , |
cl::desc("Run the core SMT solver in a forked process (default=true)") | , | ||
cl::init(true) | , | ||
cl::cat(SolvingCat) | |||
) |
llvm::cl::opt< bool > klee::UseIncompleteMerge | ( | "use-incomplete-merge" | , |
llvm::cl::init(false) | , | ||
llvm::cl::desc("Heuristic-based path merging (default=false)") | , | ||
llvm::cl::cat(klee::MergeCat) | |||
) |
cl::opt< bool > klee::UseIndependentSolver | ( | "use-independent-solver" | , |
cl::init(true) | , | ||
cl::desc("Use constraint independence (default=true)") | , | ||
cl::cat(SolvingCat) | |||
) |
llvm::cl::opt< bool > klee::UseMerge | ( | "use-merge" | , |
llvm::cl::init(false) | , | ||
llvm::cl::desc("Enable support for path merging via klee_open_merge() and " "klee_close_merge() (default=false)") | , | ||
llvm::cl::cat(klee::MergeCat) | |||
) |
bool klee::userSearcherRequiresMD2U | ( | ) |
Definition at line 97 of file UserSearcher.cpp.
Referenced by klee::Executor::setModule(), and klee::StatsTracker::StatsTracker().
|
inline |
Definition at line 141 of file GetElementPtrTypeIterator.h.
References klee::generic_gep_type_iterator< ItTy >::begin().
|
inline |
Definition at line 145 of file GetElementPtrTypeIterator.h.
References klee::generic_gep_type_iterator< ItTy >::end().
const char klee::ALL_QUERIES_KQUERY_FILE_NAME[] ="all-queries.kquery" |
Definition at line 24 of file Common.h.
Referenced by EvaluateInputAST(), and klee::Executor::Executor().
const char klee::ALL_QUERIES_SMT2_FILE_NAME[] ="all-queries.smt2" |
Definition at line 22 of file Common.h.
Referenced by EvaluateInputAST(), and klee::Executor::Executor().
const size_t klee::BUFSIZE = 128 * 1024 |
Definition at line 17 of file CompressionStream.h.
|
extern |
Referenced by createCoreSolver().
|
extern |
Referenced by EvaluateInputAST(), and klee::Executor::Executor().
|
extern |
|
extern |
Referenced by constructSolverChain().
|
extern |
Referenced by klee::MergingSearcher::selectState().
|
extern |
|
extern |
Referenced by constructSolverChain().
|
extern |
|
static |
Definition at line 213 of file ExternalDispatcher.cpp.
Referenced by klee::ExternalDispatcherImpl::createDispatcher(), and klee::ExternalDispatcherImpl::runProtectedCall().
|
extern |
Definition at line 27 of file ErrorHandling.cpp.
Referenced by klee_vmessage(), KleeHandler::KleeHandler(), and KleeHandler::~KleeHandler().
|
extern |
Definition at line 26 of file ErrorHandling.cpp.
Referenced by klee_vmessage(), KleeHandler::KleeHandler(), and KleeHandler::~KleeHandler().
|
extern |
Referenced by constructSolverChain().
|
extern |
Referenced by EvaluateInputAST(), and klee::Executor::Executor().
|
extern |
Referenced by klee::Executor::Executor(), and main().
|
extern |
|
extern |
Referenced by constructSolverChain().
|
extern |
|
extern |
void klee::noreturn |
Definition at line 29 of file ErrorHandling.h.
|
constexpr |
Definition at line 26 of file PTree.h.
Referenced by klee::PTree::getNextId().
|
extern |
Referenced by constructSolverChain().
|
extern |
const char klee::SOLVER_QUERIES_KQUERY_FILE_NAME[] ="solver-queries.kquery" |
Definition at line 25 of file Common.h.
Referenced by EvaluateInputAST(), and klee::Executor::Executor().
const char klee::SOLVER_QUERIES_SMT2_FILE_NAME[] ="solver-queries.smt2" |
Definition at line 23 of file Common.h.
Referenced by EvaluateInputAST(), and klee::Executor::Executor().
|
extern |
Referenced by klee::KCommandLine::HideOptions().
|
extern |
|
extern |
|
extern |
Definition at line 57 of file Statistics.cpp.
Referenced by computeMinDistToUncovered(), klee::StatsTracker::computeReachableUncovered(), klee::Executor::dumpStates(), EvaluateInputAST(), getStatisticManager(), klee::Statistic::getValue(), klee::WeightedRandomSearcher::getWeight(), main(), klee::StatsTracker::markBranchVisited(), klee::Executor::maxStaticPctChecks(), klee::StatisticRecord::operator+=(), klee::Statistic::operator+=(), klee::StatisticRecord::operator=(), QueryLoggingSolver::startQuery(), klee::StatisticRecord::StatisticRecord(), klee::StatsTracker::StatsTracker(), klee::StatsTracker::stepInstruction(), klee::StatsTracker::updateStateStatistics(), klee::StatsTracker::writeIStats(), and klee::StatisticRecord::zero().
|
extern |
Referenced by constructSolverChain().
|
extern |
Referenced by constructSolverChain().
|
extern |
Referenced by constructSolverChain().
|
extern |
Referenced by constructSolverChain().
|
extern |
Referenced by createCoreSolver(), and klee::Executor::Executor().
|
extern |
Referenced by klee::MergingSearcher::selectState().
|
extern |
Referenced by constructSolverChain().
|
extern |
Referenced by constructUserSearcher(), and initializeSearchOptions().