Differences in the generated LLVM IR in regression tests between Linux and macOS
- Dominant language
- C++
- Stars
- 8.6k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Description
There are many differences in the generated LLVM IR in regression tests between Linux and macOS.
## Input
Run all of our regression tests via [our testing framework](https://github.com/avast-tl/retdec-regression-tests-framework):
```
$ runner.py
```
Do this on both Linux and macOS.
## Output
When you compare the generated `.c.backend.ll` files in the `output` directories, there are many differences between Linux and macOS.
For example, [here](https://github.com/avast-tl/retdec/files/1866139/my-printf-decompilation-quality.zip) are outputs from the `bugs.my-printf-decompilation-quality` test. When you diff them, there are many differences, including different sizes of arrays, different order of basic blocks, and even different instructions.
## Expected output
The generated LLVM IR should be the same, regardless of the used system.
## Notes
Possibly related issues:
* #266 (the `bugs.my-printf-decompilation-quality` test is one of the timeouting ones on macOS)
* #209 (non-determinism in our tools)
## Configuration
* Commit: ae9a6d412caf73f1c93c7012a6f799de0cc95cdb (current `master`)
* 64b Arch Linux, GCC 7.3.1, Release build of RetDec
* mac OS 10.13, Apple LLVM version 9.0.0, Release build of RetDec
Contributor guide
No contributing guide indexed for this repository
Research direction
Run runner.py from the retdec-regression-tests-framework on both Linux and macOS, using the stated commit and release configurations. Compare the generated .c.backend.ll files in the output directories, starting with bugs.my-printf-decompilation-quality and considering the related issues #266 and #209; done means the generated LLVM IR is the same on both systems.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers, reverse-engineering, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100