Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-09-24 | Pass llvm.experimental.noalias.scope.decl to IntrinsicLowering so that it ↵ | Pavel | |
strips out these intrinsics | |||
2022-07-04 | Inline asm external call | Mikhail | |
2022-06-30 | rename CallSite to CallBase | Frank Busse | |
2022-06-30 | remove LLVM < 9 | Frank Busse | |
2022-06-26 | Intrinsics: Add support for @llvm.f{ma,muladd}.f* | Lukáš Zaoral | |
2022-05-05 | cl flags: document default values, remove dead option: --replay-keep-symbolic | Frank Busse | |
2022-03-17 | remove obsolete KLEE_LLVM legacy defines | Julian Büning | |
2022-03-17 | remove LLVM < 6 from sources | Frank Busse | |
2021-12-20 | llvm13: CreateGEP no longer accepts nullptr | Lukas Zaoral | |
See: https://reviews.llvm.org/D105653 | |||
2021-12-20 | llvm13: CreateLoad API with implicit types has been deprecated | Lukas Zaoral | |
See: https://github.com/llvm/llvm-project/commit/6312c53870897435b38881795460ad9f34bf9819 | |||
2021-10-27 | Module/RaiseAsm: Support i686 target as well | Lukas Zaoral | |
Add i686 to the list of supporterd targets by this transformation pass. | |||
2021-10-27 | Module/RaiseAsm: Fix crash when host and bitcode target triples differ | Lukas Zaoral | |
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! | |||
2021-09-10 | llvm12: Implement llvm.abs intrinsic | Lukas Zaoral | |
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> | |||
2021-09-10 | llvm11: Handle llvm.roundeven instrinsic | Lukas Zaoral | |
See: https://reviews.llvm.org/D75670 | |||
2021-09-10 | llvm12: Implement llvm.{s,u}{max,min} intrinsics | Lukas Zaoral | |
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> | |||
2021-02-16 | add ifdefs for C++ exception handling | Julian Büning | |
restoring old behavior without EH support | |||
2020-12-04 | llvm11: IPConstantPropagationPass has been removed | Lukas Zaoral | |
See: https://reviews.llvm.org/D84447 | |||
2020-12-04 | llvm11: Use getCalledOperand instead of getCalledValue | Lukas Zaoral | |
CallBase::getCalledValue has been deprecated by getCalledOperand since LLVM 8 and has been removed in LLVM 11 See: https://reviews.llvm.org/D78882 | |||
2020-12-04 | llvm11: Make conversions from StringRef to std::string explicit | Lukas Zaoral | |
The same applies to SmallString. See: llvm/llvm-project@777180a#diff-497ba4c0c527a125d382b51a34f32542 | |||
2020-11-12 | Casting.h: isa_and_nonnull<> | Julian Büning | |
2020-10-12 | Implemented support for C++ Exceptions | Felix Rath | |
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> | |||
2020-10-09 | Replace `NULL` with explicit `nullptr` | Martin Nowack | |
2020-10-09 | Explicitly track global variables in getDirectCallTarget | Martin Nowack | |
Global variables can't be a direct call target. Their values are read and treated as indirect call targets. | |||
2020-09-26 | Replace llvm::CallSite with llvm::CallBase on LLVM 8+ | Lukas Zaoral | |
This is in preparation for LLVM 11 as the llvm:CallSite class has been removed. | |||
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-29 | remove holes in Instruction-/FunctionInfoTable, add documentation | Frank Busse | |
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-06 | [Module] Disable lifting for inline asm resembling memory fences with return ↵ | Martin Nowack | |
values Inline asm used for memory barriers might use their operands and propagate them as return value. This is currently not supported. Tighten check for this condition and do not to lift those inline asm instructions. Fixes #1252 | |||
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 | Created include/klee/Core directory and moved appropriate files direc\ | Cristian Cadar | |
tly in lib/Core | |||
2020-04-30 | Removed the Internal directory from include/klee | Cristian Cadar | |
2020-03-18 | Added another `ScalarizerLegacyPass` run to remove vectorized code ↵ | Frederic Kehrein | |
introduced during the optimization step | |||
2020-01-18 | Fix handling of debug information for functions | Martin Nowack | |
Tracking function locations separately correctly without prefixing it with a directory. | |||
2019-11-15 | Implement @llvm.is.constant() intrinsic handling and add a test for it. | Gleb Popov | |
2019-11-07 | Handle llvm.objectsize explicitly | Martin Nowack | |
llvm.objectsize is used in several optimisation during compile time. Lowering these intrinsics took a conservative approach returning always the value for unknown. Instead, lower to the object's real size, if possible. Otherwise, a conservative value is used. Since LLVM 4.0, the function `llvm::lowerObjectSizeCall()` does exactly this. Use this function or preserve the old behaviour for older LLVM versions. | |||
2019-10-31 | LLVM 9.0: fourth parameter for @llvm.objectsize() | Julian Büning | |
2019-10-31 | support compilation against LLVM 9.0 | Julian Büning | |
2019-09-20 | Add saturated arithmetic intrinsics | Mateusz Naściszewski | |
2019-08-14 | Update basic block iterator after deleting instruction; add test case | Martin Nowack | |
2019-08-14 | fixed bug in IntrinsicCleaner trap cleaner | Michael Bryman | |
2019-06-04 | make endif guard naming consistent | Julian Büning | |
2019-06-04 | make include guard naming consistent | Julian Büning | |
2019-05-30 | implement FunctionAliasPass | Julian Büning | |
2019-05-28 | Implement handling of the llvm.fabs intrinsic | Felix Rath | |
2019-04-02 | Add FreeBSD OS triple in RaiseAsm | Gleb Popov | |
2019-03-21 | drop support for LLVM <= 3.7 | Julian Büning | |
2019-03-21 | remove copy of ScalarizerPass for LLVM 3.4 | Julian Büning | |
2019-03-21 | remove obsolete LegacyLLVMPassManagerTy | Julian Büning | |
2019-03-21 | remove obsolete macro KLEE_LLVM_GEP_TYPE | Julian Büning | |
2019-03-19 | Add support to assign debug instructions to optimised code | Martin Nowack | |