-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Upgrade LLVM #10758
Upgrade LLVM #10758
Conversation
I think that #3328 gets obsoleted by this and also should there be an issue opened for getting JIT back? |
Hm, it appears so, I'll close that once I land this. I'm not sure if we want to have official support for a JIT version of running rust code, although if it's a fairly small amount of code I guess there's not too much of a problem having it. I think it'd be awesome if it were possible to link to |
Was JIT exclusively used by the REPL previously or is there any other use case? |
I know of no other use case than the REPL, the |
Then JIT would be part of #9898. BTW, REPL and rust tool would be nice for user friendliness (great for newcomers to the language). |
This upgrades LLVM in order to make progress on #10708, and it's also been awhile since we last upgraded! The contentious point of this upgrade is that all JIT support has been removed because LLVM is changing it and we're not keeping up with it.
LLVM's JIT has been updated numerous times, and we haven't been tracking it at all. The existing LLVM glue code no longer compiles, and the JIT isn't used for anything currently. This also rebases out the FixedStackSegment support which we have added to LLVM. None of this is still in use by the compiler, and there's no need to keep this functionality around inside of LLVM. This is needed to unblock rust-lang#10708 (where we're tripping an LLVM assertion).
The main one removed is rust_upcall_reset_stack_limit (continuation of rust-lang#10156), and this also removes the upcall_trace function. The was hidden behind a `-Z trace` flag, but if you attempt to use this now you'll get a linker error because there is no implementation of the 'upcall_trace' function. Due to this no longer working, I decided to remove it entirely from the compiler (I'm also a little unsure on what it did in the first place).
This upgrades LLVM in order to make progress on #10708, and it's also been awhile since we last upgraded! The contentious point of this upgrade is that all JIT support has been removed because LLVM is changing it and we're not keeping up with it.
This upgrades LLVM in order to make progress on #10708, and it's also been awhile since we last upgraded!
The contentious point of this upgrade is that all JIT support has been removed because LLVM is changing it and we're not keeping up with it.