From 60b5c574ea565b3132cc60d946d87a4d1243801b Mon Sep 17 00:00:00 2001 From: Lukas Wölfer Date: Sat, 24 Jun 2017 19:59:48 +0200 Subject: Implemented bounded merging functionality --- lib/Core/UserSearcher.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'lib/Core/UserSearcher.cpp') diff --git a/lib/Core/UserSearcher.cpp b/lib/Core/UserSearcher.cpp index 6158f722..f0b2f85a 100644 --- a/lib/Core/UserSearcher.cpp +++ b/lib/Core/UserSearcher.cpp @@ -13,6 +13,8 @@ #include "Executor.h" #include "klee/Internal/Support/ErrorHandling.h" +#include "klee/CommandLine.h" + #include "llvm/Support/CommandLine.h" using namespace llvm; @@ -58,8 +60,13 @@ namespace { void klee::initializeSearchOptions() { // default values if (CoreSearch.empty()) { - CoreSearch.push_back(Searcher::RandomPath); - CoreSearch.push_back(Searcher::NURS_CovNew); + if (UseMerge){ + CoreSearch.push_back(Searcher::NURS_CovNew); + klee_warning("--use-merge enabled. Using NURS_CovNew as default searcher."); + } else { + CoreSearch.push_back(Searcher::RandomPath); + CoreSearch.push_back(Searcher::NURS_CovNew); + } } } @@ -104,6 +111,12 @@ Searcher *klee::constructUserSearcher(Executor &executor) { searcher = new InterleavedSearcher(s); } + if (UseMerge) { + if (std::find(CoreSearch.begin(), CoreSearch.end(), Searcher::RandomPath) != CoreSearch.end()){ + klee_error("use-merge currently does not support random-path, please use another search strategy"); + } + } + if (UseBatchingSearch) { searcher = new BatchingSearcher(searcher, BatchTime, BatchInstructions); } -- cgit 1.4.1