Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-09-02 | More robust handling of unknown intrinsics | Alastair Reid | |
- If an unknown intrinsic appears in the bitcode file, it is reported but execution can proceed. - If an unknown intrinsic is encountered during execution of some path, - the intrinsic is reported - this path is treated as an error - execution of other paths can proceed To be more precise, there is a list of "known unknown intrinsics". Intrinsics not on this list will prevent execution. | |||
2020-07-30 | introduce --rng-initial-seed=<unsigned> | Frank Busse | |
* move global theRNG into Executor * pass theRNG via ctor to searchers * remove some type warnings from RNG.cpp Fixes #1023. | |||
2020-07-01 | Use constraint sets and separate metadata for timing solver invocation | Martin Nowack | |
Decouple ExecutionState from TimingSolver Instead of providing an execution state to the timing solver use a set of constraints and an additional object for metadata. Fixes: * correct accounting of metadata to a specific state * accounting of all solver invocations (e.g. solver-getRange was not accounted) * allows to invoke the solver without a state (avoids costly copying of states/constraints) | |||
2020-07-01 | Use `unique_ptr` for solver in timing solver | Martin Nowack | |
2020-07-01 | Separate constraint set and constraint manager | Martin Nowack | |
2020-06-29 | Implement fshr/fshl intrinsics | Alastair Reid | |
Changes: - IntrinsicCleaner accepts fshr/fshl as accepted intrinsics - Executor::executeCall converts fshr/fshl to urem/zext/concat/shift/extract - Klee/main suppresses warnings about externals that are LLVM reserved (i.e., begin with "llvm.") - New test exercises 32 and 7 bit versions including oversize shift values Test values are based on LLVM's test for fshl/fshr - Changes that depend on existence of fshr/fshl are guarded by #if LLVM_VERSION_CODE >= LLVM_VERSION(7, 0) or ; REQUIRES: geq-llvm-7.0 | |||
2020-06-25 | Enforce fork/branch limits in branch() and fix double termination | Frank Busse | |
* extend help messages for -max-memory and -max-memory-inhibit * introduces branchingPermitted() * enforces fork/branch limits in branch() (vector version) * changes main loop * calls updateStates() before checkMemoryUsage() * calls updateStates() again in case we early terminate states This should prevent double termination for now. Other solutions are imho more expensive as we would have to compare possibly large vectors of states (either states(arr) in checkMemoryUsage() or removedStates in terminateState()). | |||
2020-06-25 | fix Executor: initializeGlobalAliases | Julian Büning | |
2020-06-25 | Executor: consolidate initialization of global objects | Julian Büning | |
2020-06-25 | Executor: light refactoring of {allocate,initialize}GlobalObjects | Julian Büning | |
mainly range-based for, code deduplication | |||
2020-06-25 | Executor: split initializeGlobals | Julian Büning | |
2020-06-24 | print stateID with --debug-print-instructions | Frank Busse | |
2020-06-24 | add ExecutionState IDs | Frank Busse | |
* add getID()/setID() * use ExecutionStateIDCompare in Executor::states set * output state id in .err files | |||
2020-06-19 | Correctly copy variadic arguments with byval attribute | Cristian Cadar | |
2020-06-19 | Renamed loop index from "i" to "k" in executeCall() so that we can reuse ↵ | Cristian Cadar | |
"Instruction *i" declared at the beginning of the function. Reformatted this function. | |||
2020-04-30 | Moved header files that were placed directly in include/klee/ into ↵ | Cristian Cadar | |
appropriate existing directories and a new directory Statistics; a few missing renames. | |||
2020-04-30 | Removed include/klee/util and moved header files to appropriate places | Cristian Cadar | |
2020-04-30 | Created include/klee/Core directory and moved appropriate files direc\ | Cristian Cadar | |
tly in lib/Core | |||
2020-04-30 | Move header files from lib/Expr to include/klee/Expr to eliminate includes ↵ | Cristian Cadar | |
using "../" | |||
2020-04-30 | Removed the Internal directory from include/klee | Cristian Cadar | |
2020-02-19 | Use `ref<>` for MemoryObject handling | Martin Nowack | |
This uses the `ref<>`-based memory handling of MemoryObjects. This makes it explicit that references are held in: - ExecutionState::symbolics - ObjectState | |||
2019-12-13 | Remove unnecessary std::move's that prevent copy elision | Cristian Cadar | |
2019-12-12 | [Searchers] Remove weight from es, add nurs_depth | Timotej Kapus | |
Having both weight and depth in execution state is wasteful, therefore this patch removes weight. The nurs:depth searcher is replaced by nurs:rp, which uses pow to compute the weight A new nurs:depth searcher is introduced that biases the search with depth, making it the only other searcher that prefers to go deep (similar to dfs). | |||
2019-11-28 | Move merging related code from Executor into MergingSearcher | Lukas Wölfer | |
Co-authored-by: Felix Rath <felix.rath@comsys.rwth-aachen.de> | |||
2019-11-05 | Core: Executor, remove unused variable | Jiri Slaby | |
numSeeds is unused since commit 4eb050e2999b (ExecutorTimers: refactor and move to support lib), so remove it. | |||
2019-11-05 | Mark all constant global memory objects as constant | Martin Nowack | |
Fixes #264. We first aggregate all constant memory objects initialise them and initialise their counter parts in the concrete memory. After that, we mark memory objects as constant such that they can't be modified (i.e. this includes marking them symbolic). | |||
2019-11-04 | Remove the duplicated check for DebugInfoIntrinsic | Hui Peng | |
2019-10-31 | Executor: fix missing default case in switch instruction | Frank Busse | |
2019-10-29 | ExecutorTimers: refactor and move to support lib | Frank Busse | |
- moves timer handling from Executor into support lib - introduces TimerGroup, removes TimerInfo/WriteStatsTimer/UpdateReachableTimer/WriteIStatsTimer classes - removes ExecutorTimers.cpp and ExecutorTimerInfo.h - removes -max-instruction-time flag (see #1114) | |||
2019-09-20 | refactor PTree: remove split(), add attach() method | Frank Busse | |
2019-09-03 | Moved solver-related header files into a separate klee/Solver/ directory. | Cristian Cadar | |
2019-08-15 | ExecutorTimers: move dumpStates/dumpPTree into Executor | Frank Busse | |
* creates two new methods: dumpStates, dumpPTree | |||
2019-07-30 | Consolidated Expr-related include files into a single include/klee/Expr ↵ | Cristian Cadar | |
directory. This improves the organization of the code, and also makes it easier to reuse Expr outside KLEE. | |||
2019-05-30 | ExecutionState: remove fnAliases | Julian Büning | |
2019-05-28 | Implement handling of the llvm.fabs intrinsic | Felix Rath | |
2019-04-02 | Fix build of Executor.cpp on FreeBSD. | Gleb Popov | |
2019-03-21 | drop support for LLVM <= 3.7 | Julian Büning | |
2019-03-19 | Add support to assign debug instructions to optimised code | Martin Nowack | |
2019-03-19 | Use debugging information from newer LLVM versions | Martin Nowack | |
2019-03-19 | Refactor InstructionInfoTable | Martin Nowack | |
Better debug information | |||
2019-03-17 | run VerifierPass after optimization and instrumentation | Julian Büning | |
2019-03-15 | Placed option categories in the klee namespace and options in the anonymous ↵ | Cristian Cadar | |
namespace in Executor.cpp | |||
2019-03-15 | Renamed --seed-out to --seed-file and --seed-out-dir to --seed-dir, and ↵ | Cristian Cadar | |
placed them in the seeding category. Moved options and option categories in Executor.cpp to the klee namespace. | |||
2019-03-15 | Reformatted options and headers in Executor.cpp and did a proofreading pass ↵ | Cristian Cadar | |
over all help messages. | |||
2019-03-15 | Added several options in Executor.cpp to the constraint solving category | Cristian Cadar | |
2019-03-13 | Consistently use "default=true" and "default=false" instead of "default=on" ↵ | Cristian Cadar | |
and "default=off" in --help | |||
2019-03-12 | time: add double type for span multiplications | Frank Busse | |
2019-03-11 | Add support for LLVM 8.0 | Martin Nowack | |
2019-03-05 | Renamed "Starting options" to "Startup options" and added a missing space in ↵ | Cristian Cadar | |
a help message. | |||
2019-03-05 | fix Executor::initializeGlobals for aliases pointing to another alias | Julian Büning | |