diffkemp
diffkemp copied to clipboard
Static analysis of semantic differences in kernel versions
When running DiffKemp using binary build by nix (`result/bin/diffkemp`), DiffKemp did not work if the user did not install the dependencies that are used at runtime (like llvm - opt,...
Adds a header for defining custom C patterns, pass for preprocessing them into valid LLVM pattern format, and creates new interface for these passes. Includes tests for the C patterns....
I tried to install DiffKemp on Fedora (in docker) from the RPM package and it looks like that the specification is missing `pip` as a requirement. I used the following...
Introduction to unit testing of `DifferentialFunctionComparator` using LLVM IR. Tests can be written like this: ```cpp TEST_F(DFCLlvmIrTest, ReorderedBinaryOperationDifferentOperands) { auto left = R"(define i8 @f() { %1 = add i8...
This PR introduces an SMT-based comparison of short sequential snippets using Z3 solver. The general approach can be described as follows: - when we find a difference and no pattern...
First part of commits from #314 . This PR adds: - caching of Syntax difference kind (because there can be multiple kinds of syntax differences - `macro`, `assembly`, `macro-function`, `function-macro`)...
- added support for LLVM 17 + adjusted nix config
When I tried to change the flags used for the compilation of C files to LLVM (specifically from `-O1` to `-O0 -Xclang -disable-O0-optnone`), I noticed if the LLVM files already...
This PR adds visualisations of macros to the result viewer. It was necessary to get information about definitions of macros. I did not use `cscope` because there can be multiple...
When a single variable is replaced with two (or more) variables with identical values, DiffKemp maps the first new variable to the original variable successfully, but then cannot map the...