diff options
author | Cristian Cadar <c.cadar@imperial.ac.uk> | 2013-10-22 09:12:35 -0700 |
---|---|---|
committer | Cristian Cadar <c.cadar@imperial.ac.uk> | 2013-10-22 09:12:35 -0700 |
commit | 99d864996eb7768f55d210cb7c286f316c5a8187 (patch) | |
tree | 37d674b765cfbac3d99dd95881552df3630184dd /include | |
parent | 631e2f6f9ffcb9ad345220426ec080bd74e10cf3 (diff) | |
parent | cc0ac847684b276a4845b0d7fe0e880850bef8f9 (diff) | |
download | klee-99d864996eb7768f55d210cb7c286f316c5a8187.tar.gz |
Merge pull request #41 from hpalikareva/metasmt-multisolver
Support for KLEE-MultiSolver (http://srg.doc.ic.ac.uk/projects/klee-multisolver/)
Diffstat (limited to 'include')
-rw-r--r-- | include/klee/CommandLine.h | 14 | ||||
-rw-r--r-- | include/klee/Solver.h | 15 |
2 files changed, 29 insertions, 0 deletions
diff --git a/include/klee/CommandLine.h b/include/klee/CommandLine.h index 38b22c6f..c4c70069 100644 --- a/include/klee/CommandLine.h +++ b/include/klee/CommandLine.h @@ -7,6 +7,7 @@ #define KLEE_COMMANDLINE_H #include "llvm/Support/CommandLine.h" +#include "klee/Config/config.h" namespace klee { @@ -43,6 +44,19 @@ enum QueryLoggingSolverType */ extern llvm::cl::list<QueryLoggingSolverType> queryLoggingOptions; +#ifdef SUPPORT_METASMT + +enum MetaSMTBackendType +{ + METASMT_BACKEND_NONE, + METASMT_BACKEND_STP, + METASMT_BACKEND_Z3, + METASMT_BACKEND_BOOLECTOR +}; + +extern llvm::cl::opt<klee::MetaSMTBackendType> UseMetaSMT; + +#endif /* SUPPORT_METASMT */ //A bit of ugliness so we can use cl::list<> like cl::bits<>, see queryLoggingOptions template <typename T> diff --git a/include/klee/Solver.h b/include/klee/Solver.h index 8fe33c7c..00e4c962 100644 --- a/include/klee/Solver.h +++ b/include/klee/Solver.h @@ -219,6 +219,21 @@ namespace klee { virtual void setCoreSolverTimeout(double timeout); }; + +#ifdef SUPPORT_METASMT + + template<typename SolverContext> + class MetaSMTSolver : public Solver { + public: + MetaSMTSolver(bool useForked, bool optimizeDivides); + virtual ~MetaSMTSolver(); + + virtual char *getConstraintLog(const Query&); + virtual void setCoreSolverTimeout(double timeout); +}; + +#endif /* SUPPORT_METASMT */ + /* *** */ /// createValidatingSolver - Create a solver which will validate all query |