Age | Commit message (Collapse) | Author |
|
Add i686 to the list of supporterd targets by this transformation pass.
|
|
RaiseAsm always created a target machine for the host target and not for
the bitcode one. Therefore, KLEE could crash on i686 bitcode as x86_64
target machine cannot be used to raise i686 assembly.
Fixes:
LLVM ERROR: 64-bit code requested on a subtarget that doesn't support it!
|
|
The vector variants are not implemented at the moment.
See: https://reviews.llvm.org/D84125
Co-authored-by: Lukas Zaoral <lzaoral@redhat.com>
Co-authored-by: Martin Nowack <m.nowack@imperial.ac.uk>
|
|
See: https://reviews.llvm.org/D75670
|
|
The vector variants are not implemented at the moment.
See: https://reviews.llvm.org/D84125
Co-authored-by: Lukas Zaoral <lzaoral@redhat.com>
Co-authored-by: Martin Nowack <m.nowack@imperial.ac.uk>
|
|
... and has already been removed from the LLVM 13 source tree.
See:
https://reviews.llvm.org/D78127
https://reviews.llvm.org/D95570
|
|
Before, we reused the llvm::Function* value in the target program,
even though it stems from KLEE's own address space. This leads to
non-deterministic function pointers, even with --allocate-determ.
This issue was identified in the MoKLEE paper. Now, we allocate a
memory object per function, for its (potentially) deterministic
address. Mapping this address back to llvm::Functions is done by
the legalFunctions map.
Also, pointer width now depends on the target, not the host.
|
|
stats when not dumping states
|
|
performed with one expressed in terms of number of forks.
|
|
|
|
reached
|
|
the MaxStatic*Pct checks are performed.
|
|
|
|
|
|
__cxa_throw and __cxa_rethrow were not handled by special function handlers in
the final version of #966 (which introduced support for C++ exception handling)
|
|
restoring old behavior without EH support
|
|
and should be replaced with CallBase::getParamAlign
|
|
See: https://reviews.llvm.org/D80368
|
|
See: https://reviews.llvm.org/D84447
|
|
See:
https://reviews.llvm.org/D75660
https://reviews.llvm.org/D75661
|
|
CallBase::getCalledValue has been deprecated by getCalledOperand since LLVM 8
and has been removed in LLVM 11
See: https://reviews.llvm.org/D78882
|
|
The same applies to SmallString.
See: llvm/llvm-project@777180a#diff-497ba4c0c527a125d382b51a34f32542
|
|
|
|
|
|
Currently, only 32bit vs. 64bit is supported.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
versions, also mark two errors as ExecErrors, as these should not be caused by users
|
|
We implement the Itanium ABI unwinding base-API, and leave the
C++-specific parts to libcxxabi.
Co-authored-by: Lukas Wölfer <lukas.woelfer@rwth-aachen.de>
|
|
|
|
|
|
|
|
Global variables can't be a direct call target. Their values are read
and treated as indirect call targets.
|
|
This is in preparation for LLVM 11 as the llvm:CallSite class has been
removed.
|
|
|
|
The previous version left unnecessary intermediate nodes behind, sometimes
leading to very long paths in the tree.
|
|
- 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.
|
|
|
|
* move global theRNG into Executor
* pass theRNG via ctor to searchers
* remove some type warnings from RNG.cpp
Fixes #1023.
|
|
|
|
|
|
This constructor has been a hack and was wrongly used, use ConstraintManager instead.
Allow copy-constructing states only via `ExecutionState::branch()` call.
|
|
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)
|