-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
LLVM 16 #55
base: master
Are you sure you want to change the base?
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 added support for LLVM 16. In an effort to make future porting a little easier, I made use of the
llvm/IR/Attributes.inc
where 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