Test bot on feature/llvm 19#11
Conversation
|
\evaluate --rebuild |
Error: EqBench failed |
|
|
521be64 to
654c194
Compare
|
\eqbench --help |
|
\evaluate --help |
|
|
\evaluate --rebuild |
13fa561 to
b75c205
Compare
EqBench
DetailsDetails for default optimizationDetails for default optimizationDetails for -O2 optimizationDetails for -O2 optimizationNew false negatives |
Error: RHEL functions failed |
|
|
811a7e8 to
cfa4f3c
Compare
|
\evaluate |
cfa4f3c to
faa78f7
Compare
EqBench
DetailsDetails for default optimizationDetails for default optimizationDetails for -O2 optimizationDetails for -O2 optimizationNew false negatives |
RHEL functions
DetailsDetails for 8.0-8.1Details for 8.0-8.1Compared symbols newly evaluated as non-equal
New differing symbols
Details for 8.1-8.2Details for 8.1-8.2Compared symbols previously evaluated as non-equal
New differing symbols
Eliminated differing symbols
Details for 8.2-8.3Details for 8.2-8.3Compared symbols previously evaluated as non-equal
New differing symbols
Eliminated differing symbols
Details for 8.3-8.4Details for 8.3-8.4Compared symbols previously evaluated as non-equal
New differing symbols
Eliminated differing symbols
Details for 8.4-8.5Details for 8.4-8.5Compared symbols newly evaluated as non-equal
New differing symbols
|
RHEL sysctl
DetailsDetails for 8.0-8.1Details for 8.0-8.1Compared symbols newly evaluated as non-equal
New differing symbols
Details for 8.1-8.2Details for 8.1-8.2Compared symbols previously evaluated as non-equal
New differing symbols
Eliminated differing symbols
Details for 8.2-8.3Details for 8.2-8.3Compared symbols previously evaluated as non-equal
New differing symbols
Eliminated differing symbols
Details for 8.3-8.4Details for 8.3-8.4Compared symbols newly evaluated as non-equal
New differing symbols
Eliminated differing symbols
Details for 8.4-8.5Details for 8.4-8.5Compared symbols newly evaluated as non-equal
New differing symbols
|
9b5523a to
278ce48
Compare
7689a37 to
dead788
Compare
dead788 to
923d86e
Compare
This makes sure that the DiffKemp command is running in correct and well-defined environment with correct version of LLVM tools (otherwise tools from system might be used).
This commit adds a support for LLVM 19, the main differences in comparison to the previous version are: 1. The removal of `equals` method from `StringRef` class. 2. The removal of `getPredicate` from `ConstExpr` class. 3. Various changes in includes, that require us to use more fine-grained include strategy. 4. The separation of some analysis functions and classes into a separate header. 5. The deprecation of debug intrinsics has begun. The `equals` method was removed in this commit [1] and the equality operator is in the code base from LLVM 3, so it should be safe to use. The name of some passes has changed in [2]. Therefore, we have to check for some of these passes and change their name in accordance to the used LLVM version. Because of that we have to check the version with which was the DiffKemp SimpLL library built. This required addition of new function to the FFI. The `getPredicate` method was removed from `ConstExpr` class in commit [3], we have extracted the method for getting an instruction from expression into a stand-alone function, but this method has changed upstream. Therefore, I have extracted the new changed method into a new function. The analysis classes and functions were moved into a new header in [4]. The LLVM aims to remove debug intrinsics, as explained in [5]. However, we still rely on them in our tests. Therefore, we have to set the debug type back to the old one as our code was affected by [6]. [1]: llvm/llvm-project@3fa409f [2]: llvm/llvm-project@e390c22 [3]: llvm/llvm-project@deab451 [4]: llvm/llvm-project@a4cd981 [5]: https://llvm.org/docs/RemoveDIsDebugInfo.html [6]: llvm/llvm-project@9997e03
923d86e to
6f479ed
Compare
Some includes are in a different format that what is used elsewhere. This commit makes all of them adhere to a common style by: 1. Make local includes actually use local module lookup (double quotes) 2. Do the same thing for global includes
6f479ed to
d2731d2
Compare
|
\evaluate |
EqBench
DetailsDetails for default optimizationDetails for default optimizationDetails for -O2 optimizationDetails for -O2 optimizationNew false negatives |
RHEL functions
DetailsDetails for 8.0-8.1Details for 8.0-8.1Compared symbols newly evaluated as non-equal
New differing symbols
Details for 8.1-8.2Details for 8.1-8.2Compared symbols previously evaluated as non-equal
New differing symbols
Eliminated differing symbols
Details for 8.2-8.3Details for 8.2-8.3Compared symbols previously evaluated as non-equal
New differing symbols
Eliminated differing symbols
Details for 8.3-8.4Details for 8.3-8.4Compared symbols previously evaluated as non-equal
New differing symbols
Eliminated differing symbols
Details for 8.4-8.5Details for 8.4-8.5Compared symbols newly evaluated as non-equal
New differing symbols
|
RHEL sysctl
DetailsDetails for 8.0-8.1Details for 8.0-8.1Compared symbols newly evaluated as non-equal
New differing symbols
Details for 8.1-8.2Details for 8.1-8.2Compared symbols previously evaluated as non-equal
New differing symbols
Eliminated differing symbols
Details for 8.2-8.3Details for 8.2-8.3Compared symbols previously evaluated as non-equal
New differing symbols
Eliminated differing symbols
Details for 8.3-8.4Details for 8.3-8.4Compared symbols newly evaluated as non-equal
New differing symbols
Eliminated differing symbols
Details for 8.4-8.5Details for 8.4-8.5Compared symbols newly evaluated as non-equal
New differing symbols
|
There might be some incompatibilities when using LLVM tools from different version than the one with which was DiffKemp built. Therefore, we have to embed the build version into the DiffKemp binary and then check during runtime whether the environment is compatible.
From LLVM 19 by default are used debug records instead of debug intrinsics [1,2]. For this reason it was necessary to update `getPointeeStructTypeInfo` function. The changes are connected with changes of `llvm::findDbgValues` function [3,4] that currently return both records (for debug records) and instructions (for debug intrinsics). For LLVM 19 we are trying to find type of the struct by using both (records and instrinsics). Changes: - It was necessary in `DifferentialFunctionComparator::cmpAllocs` to check if `getNextNode` does not returns nullptr, because without it `DifferentialFunctionComparatorTest.CmpAllocs` test was failing. The reason is that for LLVM <= 18 the next node was dbg intrinsic, but for LLVM 19 there is no next node (dbg record is not probably considered as node). - In tests, there is change in calling of the `insertDbgValueIntrinsic` function. Previously the debug info was inserted at the end of the basic block, now it is inserted before previous instruction. The reason is that, there was problem with memory leaking when the debug info was placed at the end of the basic block. When the debug info is inserted before instruction, the instruction manages deallocation of the debug info. - The `getPointeeStructTypeInfo` is split into two version to make the code more readable. - The `getDbgTypeForValue` function was created and split into two version for LLVM >=19, LLVM >=15. The function extracts the type of the struct. [1] https://releases.llvm.org/19.1.0/docs/ReleaseNotes.html [2] https://llvm.org/docs/RemoveDIsDebugInfo.html [3] llvm/llvm-project@4259198 [4] llvm/llvm-project@ffd08c7
d2731d2 to
90fecbf
Compare
No description provided.