diff options
author | Lukas Wölfer <lukas.woelfer@rwth-aachen.de> | 2017-06-24 19:31:04 +0200 |
---|---|---|
committer | Cristian Cadar <c.cadar@imperial.ac.uk> | 2018-05-15 15:18:36 +0100 |
commit | e5a18f47a8cdd37a5c2721e89df68ea7aafed8a0 (patch) | |
tree | 620bd0ab0ce7f737db5ab7f8f656d32ea0849f4a /lib/Core/Searcher.h | |
parent | 0cf0150da0f674c85f9eaccee8b487ed004c3edc (diff) | |
download | klee-e5a18f47a8cdd37a5c2721e89df68ea7aafed8a0.tar.gz |
Implemented incomplete merging
Diffstat (limited to 'lib/Core/Searcher.h')
-rw-r--r-- | lib/Core/Searcher.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/Core/Searcher.h b/lib/Core/Searcher.h index 27c8aed1..47026410 100644 --- a/lib/Core/Searcher.h +++ b/lib/Core/Searcher.h @@ -180,6 +180,32 @@ namespace klee { } }; + class MergeHandler; + class MergingSearcher : public Searcher { + friend class MergeHandler; + + private: + + Executor &executor; + Searcher *baseSearcher; + + public: + MergingSearcher(Executor &executor, Searcher *baseSearcher); + ~MergingSearcher(); + + ExecutionState &selectState(); + + void update(ExecutionState *current, + const std::vector<ExecutionState *> &addedStates, + const std::vector<ExecutionState *> &removedStates) { + baseSearcher->update(current, addedStates, removedStates); + } + bool empty() { return baseSearcher->empty(); } + void printName(llvm::raw_ostream &os) { + os << "MergingSearcher\n"; + } + }; + class BatchingSearcher : public Searcher { Searcher *baseSearcher; double timeBudget; |