Age | Commit message (Collapse) | Author |
|
evalConstantExpr which allows us to print the location associated with the constant in any error messages. Added a test case for the unsupported features for taking the address of a label, which exercises the patch.
|
|
location as a string. Also added const qualifier to the printFileLine functions
|
|
[CMake] Change some defaults
|
|
[TravisCI] Some fixes for STP scripts
|
|
|
|
|
|
requested get used.
|
|
dynamically based on whether MetaSMT is available. Previously the
default was always off.
|
|
zlib. The default is `ON` if zlib is found on first configure
and `OFF` if zlib is not found on first configure.
|
|
`ENABLE_SOLVER_Z3` to be set dynamically based on whether Z3 is
available. Previously the default was always off.
|
|
`ENABLE_SOLVER_STP` to be set dynamically based on whether STP is
available. Previously the default was always off.
|
|
Now that LLVM 2.9 is gone, we can use cl::bits when needed
|
|
|
|
This reverts incorrect patch https://github.com/klee/klee/commit/db29…
|
|
https://github.com/klee/klee/commit/db29a0bba74b672cdf4b8fef4d94ffa6ab845e6d
__fprintf_chk has a different prototype than fprintf
|
|
|
|
[CMake] Handle building against LLVM built without assertions
|
|
|
|
This could lead to lots of problems. If we discover that these
configurations don't work at all we should make this an error.
|
|
Refactored some code related to constant evaluation
|
|
when LLVM was built without assertions. This prevented
`ENABLE_KLEE_ASSERTS` from working correctly.
Reported by @MartinNowack .
|
|
Re-enable parts of `FloatingPointOps.ll`
|
|
evalConstantExpr also resides), as suggested by an old comment.
|
|
|
|
doesn't seem relevant anymore given that LLVM 3.4 is the minimum version
KLEE supports. Also do minor clean up. This was spotted by @andreamattavelli.
|
|
|
|
This is useful on systems like NixOS, where python3 is not in
/usr/bin/python3 as well as for people using alternative ways to
install python such as virtualenv/pyenv.
Some scripts where already using '/usr/bin/env'. With this pull request
it gets more consistent. For background information see also:
https://github.com/systemd/systemd/pull/5816
|
|
follow up of c9c90a0ecdce10172fd5318aea60a9ff4057679f
|
|
A few runtime build system fixes
|
|
Remove support for LLVM < 3.4
|
|
provide a better error message (and stop earlier) when no C source
files are found.
|
|
archive/modules when the list of source files that constitute it
changes.
To fix this a file is written in the build directory that contains
the list of `.bc` files. This file is updated whenever the list of
`.bc` files for a module changes and then the rule that builds the
module/archive depends on that file.
This fixes a bug reported by @ccadar in #718.
|
|
|
|
|
|
|
|
|
|
Request LLVM 3.4 as minimal requirement for KLEE
|
|
|
|
|
|
Implement basic support for vectorized instructions.
|
|
pass that checks these assertions. This improves several things.
* This pass provides more friendly messages than assertions in that it
just emits a warning and carries on checking the rest of the
instructions.
* The takes the checks outside of the Executor's hot path and so avoids
checking the same instruction multiple times. Now each instruction
is only checked once just before execution starts.
The disadvantage of this approach is the check for invariants we expect
to hold have been pulled far away from where we expect them to hold.
After discussion with @ccadar and @MartinNowack it was decided we will
take this hit to readability for better performance and simpler code in
the Executor.
|
|
Core: TimingSolver, use WallTimer
|
|
Do not opencode what we already have in TimerStatIncrementer. This
simplifies the code a lot and makes transition to LLVM 4.0 a lot easier.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
|
|
Fixes bug in TreeStreamWriter::write reported by @gladtbx in #562. A…
|
|
other a regression test for #562
|
|
We use LLVM's Scalarizer pass to remove most vectorized code so that the
Executor only needs to support the InsertElement and ExtractElement
instructions.
This pass was not available in LLVM 3.4 so to support that LLVM version
the pass has been back ported.
To check that the Executor is not receiving vector operand types
that it can't handle assertions have been added.
There are a few limitations to this implementation.
* The InsertElement and ExtractElement index cannot be symbolic.
* There is no support for LLVM < 3.4.
|
|
removes commented out code from that function.
|
|
Instead of using an id, use the assembly line number executed
|
|
llvm: get rid of static_casts from iterators
|
|
Added caching of Homebrew downloads
|