LLVM 16#55
Conversation
|
Thanks for your contribution! I will review this PR within 3days. |
|
@Lotes The main work to port to LLVM 18 I believe would be to remove the non-opaque pointer API entirely so I don't envision it to be to difficult. If you need it I'd recommend just installing LLVM 18 and working through the compilation errors. This port took about 3 hours for reference. I ended up not using this library since it was missing too much out of the full LLVM API which ended up becoming cumbersome while developing my frontend. |
|
@Kronos3, thanks for your PR on upgrading to LLVM 16. We are really interested in this and look forward to the review and merge by @ApsarasX.
Could you tell how you use LLVM, what parts of the LLVM API you are missing, and what workaround you found? |
|
@ApsarasX, thanks for the library, it's a good connection of the worlds of TS and LLVM 👍 Here is our fork that adds |
|
FYI we have added some features to a fork of this repo here: https://github.com/TypeFox/llvm-bindings We could contribute that back if there's interest. This is not directly related to the version upgrade, though. |
|
I too would like to have bindings for the new version. |
|
I hard-forked this project and updated it for each LLVM version until 22 (so far): https://github.com/DesignLiquido/llvm-bindings (https://www.npmjs.com/package/@designliquido/llvm-bindings). I'll keep it updated for each major version of LLVM. |
I added support for LLVM 16. In an effort to make future porting a little easier, I made use of the
llvm/IR/Attributes.incwhere attributes are defined. The attribute declaration macros are overridden to have the preprocessor register the attributes for us.The TS declaration are also passed through the preprocessor so that they are also updated from version to version.
I also added an override to <assert.h> that throws a NodeJS error by default so that its easier to debug LLVM assertion failures in the JS context