TODO list, Help wanted
This is a list of suggested improvements that anyone can contribute to, I will try to keep it updated as we add/remove items. Please try not to clutter this thread with replies related to the below. If need be you can open a new issue dedicated to discussing one of the points below.
Wanted improvements:
- Fix for
SZ_STACKrelated crashes. - Fix for
SZ_CODErelated crashes. - Port to ARM/Aarch64.
- Port to S390.
- Port to Windows.
- More and better comments, especially useful in llvm-pass code that may be hard to follow and debug for beginners.
- Investigate whether
pass/IntrinsicLibcalls.hneeds additional Intrinsics added due to new ones having been added in later llvm versions. [1] - Improved tests [2].
- Github Actions CI testing, preferably also running the tests on all supported platforms and architectures.
1: There is very little info about why these intrinsics are on the list and others are not, if you know the details then please create a PR with improved comments to document this feature.
2: The current tests are not able to detect the Stack and Code crashes, and it is hard to determine whether the current tests actually passed or failed due to an abundance of hard-to-understand output. An option to improve test understanding would be to change the project from hand-written makefiles to CMake and then utilize CTest.
I'd like to add a couple tasks to the todo list:
- Rewrite stabilizer for the new llvm pass manager because legacy pass manager is deprecated.
- Porting to llvm 15 may require breaking compatibility with previous versions of llvm because clang 15 finally started to use opaque pointers. It might be possible to keep backward compatibility with older versions of llvm, but I have no idea how hard that would be.
I think it makes sense to do both tasks in one go.