Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-10-26 | llvm5: integerPartWidth is from llvm::APFloatBase | Jiri Slaby | |
Otherwise we see: ../lib/Expr/Expr.cpp:331:14: error: no member named 'integerPartWidth' in namespace 'llvm'; did you mean 'llvm::APFloatBase::integerPartWidth'? Signed-off-by: Jiri Slaby <jirislaby@gmail.com> | |||
2018-10-26 | llvm5: avoid ++ on function->arg_begin() | Jiri Slaby | |
Starting with llvm 5, arguments of a function are not an iterator, but an array. So they cannot be incremented in-place. Add a local auto variable and increment that. Otherwise we see: ../tools/klee/main.cpp:661:23: error: expression is not assignable Value *oldArgv = &*(++mainFn->arg_begin()); ^ ~~~~~~~~~~~~~~~~~~~ Signed-off-by: Jiri Slaby <jirislaby@gmail.com> | |||
2018-10-24 | Add testcase for shift check | Martin Nowack | |
Validate non-optimised and optimised variant of added checks. | |||
2018-10-24 | ShiftChecker: Instrument shift instructions only once | Martin Nowack | |
As the shift checker could be executed multiple times, we need to avoid that shift instructions are instrumented multiple times as well. Mark the instrumented instruction using metadata and avoid it in successive runs. | |||
2018-10-24 | ShiftChecker: Avoid unneeded checks | Martin Nowack | |
Do not instrument shift operations with constant shift operations that are smaller than the type size. | |||
2018-10-24 | ShiftCheck: Use llvm::Builder instead of Inst::Create* | Martin Nowack | |
Use llvm::Builder instead of Inst::Create* to create instruction. This handles metadata automatically and does instruction folding if possible. Updated to C++11 and clang-formatted. | |||
2018-10-24 | Add test case for div checker | Martin Nowack | |
Check that only important div instructions are annotated. Check the optimized case as well: the call to the validating function might not be part of the code anymore but already inlined - make sure the instruction still has the metadata attached. | |||
2018-10-24 | DivCheck do not instrument multiple times | Martin Nowack | |
DivChecker can be executed multiple times due to the new linking process. Avoid instrumenting div instructions multiple times by annotating checked instructions with marker. Only unmarked div instructions will be instrumented. | |||
2018-10-24 | DivCheck Skip unneeded checks | Martin Nowack | |
Do not instrument divisions which do have a constant non-zero value. | |||
2018-10-24 | Use llvm::Builder for DivCheck instrumentation | Martin Nowack | |
Use llvm::Builder instead of raw `*Inst::create()` functions. Builder automatically manages metadata (e.g. debug, TBAA, ..) such that we don't have to take care of this automatically. Updated code to C++11 and clang-formated it. | |||
2018-10-24 | Introduce KLEEIRMetaData to manipulate LLVM-IR metadata | Martin Nowack | |
Simplify the handling of metadata attached to LLVM IR that is specific to KLEE. | |||
2018-10-24 | Added lowering pass | Rafael Zaehl | |
2018-10-23 | refactor klee_open_output_file to return std::unique_ptr | Julian Büning | |
and introduce klee_open_compressed_output_file with similar behavior along some other minor improvements | |||
2018-10-23 | use klee_open_output_file for uncompressed logs | Julian Büning | |
2018-10-23 | Updated an include to reflect a recent filename change | Cristian Cadar | |
2018-10-23 | Move unrelated function from ReadExpr class | Martin Nowack | |
2018-10-23 | Avoid unsafe static downcasts | Martin Nowack | |
2018-10-23 | Modernize code | Martin Nowack | |
* use `using` instead of typdef * use `collection.empty()` instead of size * use `auto` if clear * use `emplace_back` where useful * use `nullptr` instead of NULL * use `override` if applicable * use `explicit` for constructor to avoid implicit conversion | |||
2018-10-23 | Move optimization specific headers away from the project include directory | Martin Nowack | |
Don't pollute the project include directory with optimization specific headers. | |||
2018-10-23 | Clean-up headers | Martin Nowack | |
Remove unneeded headers from include files | |||
2018-10-23 | Use std::unordered collections as we use C++11 | Martin Nowack | |
2018-10-23 | Remove unneeded externs | Martin Nowack | |
2018-10-23 | Remove condition check before function invocation | Martin Nowack | |
Conditions are checked inside of `optimizeExpr()` anyway. This simplifies the code a lot. | |||
2018-10-23 | Move ConstantExpr check inside optimizeExpr function | Martin Nowack | |
2018-10-23 | optimizeExpr: return the result as return value instead as function argument | Martin Nowack | |
simplifies code a lot. | |||
2018-10-23 | Make valueOnly parameter of optimizeExpr explicit | Martin Nowack | |
avoid ambiguity of valueOnly parameter | |||
2018-10-23 | Fixed compilation of array optimization patch with LLVM >= 4.0 | Cristian Cadar | |
2018-10-23 | Added missing headers and clang-format the files | Cristian Cadar | |
2018-10-23 | Added support for KLEE value-based array optimization | Andrea Mattavelli | |
2018-10-23 | Added support for KLEE index-based array optimization | Andrea Mattavelli | |
2018-10-17 | tests: disable CompressedExprLogging on zlib-less systems | Frank Busse | |
2018-10-16 | Small changes to comments | Cristian Cadar | |
2018-10-16 | Added missing header to SolverCmdLine.h and clang-format it | Cristian Cadar | |
2018-10-16 | Renamed klee/CommandLine.h to klee/SolverCmdLine.h, since this file is meant ↵ | Cristian Cadar | |
to have only solver options. | |||
2018-10-10 | fix handling of failing external calls | Frank Busse | |
Currently KLEE only handles the first segfault in external calls as it doesn't unblock SIGSEGV afterwards. This patch unblocks the signal and enables handling of multiple failing calls. | |||
2018-10-10 | cmake/lit: add asan/non-asan, ubsan/non-ubsan flags | Frank Busse | |
2018-10-08 | cleanup headers, whitespaces, and types | Frank Busse | |
2018-10-08 | add support for klee-replay on OSX | Frank Busse | |
* also adds klee-replay as dependency for systemtests | |||
2018-10-07 | Workaround for flaky coverage | Martin Nowack | |
Merge unittest coverage results and system tests coverage results into one coverage report. | |||
2018-10-04 | kleeModule: always link irreader (required since llvm 3.3) | Julian Büning | |
2018-10-04 | remove obsolete dependency of kleeModule on kleeCore | Julian Büning | |
2018-10-04 | config.h.cmin: remove obsolete cmakedefine | Julian Büning | |
2018-10-03 | Marking resolve methods as const | Cristian Cadar | |
2018-10-03 | Refactored AddressSpace::resolve() by creating a new function ↵ | Cristian Cadar | |
AddressSpace::checkPointerInObject() that is called in both the forward and the backward searches. This makes the code more modular and removes a large part of duplicated code and should also address the non-deterministic coverage in the resolve() function which affects Codecov reports. | |||
2018-09-30 | Fix a crash when the last running state is terminated during merging | Lukas Wölfer | |
2018-09-29 | Changed code to create up to 100 properly-numbered symbolic arguments, and ↵ | Cristian Cadar | |
add a corresponding check. | |||
2018-09-29 | Add checks for correct usage of the POSIX model, together with an associated ↵ | Cristian Cadar | |
test. | |||
2018-09-27 | Revert lit to 0.6.0 version, as 0.7.0 misbehaves | Cristian Cadar | |
2018-09-20 | Removed unused file | Cristian Cadar | |
2018-09-20 | Removed unused --sym-files 0 0 argument from FD_Fail test and rewrote the ↵ | Cristian Cadar | |
test to use FileCheck instead of grep |