Skip to content
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

Closed
wants to merge 2 commits into from
Closed

Upgrade LLVM #10758

wants to merge 2 commits into from

Conversation

alexcrichton
Copy link
Member

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.

@adrientetar
Copy link
Contributor

I think that #3328 gets obsoleted by this and also should there be an issue opened for getting JIT back?
Seems like it's not a large chunk of code to add.

@alexcrichton
Copy link
Member Author

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 librustc and have something like librustjit or something like that. Basically it would be possible to have the JIT as its own external library (in theory).

@adrientetar
Copy link
Contributor

Was JIT exclusively used by the REPL previously or is there any other use case?

@alexcrichton
Copy link
Member Author

I know of no other use case than the REPL, the -Z jit flag let you run code without emitting an object, but I don't believe that it was widely used.

@adrientetar
Copy link
Contributor

Then JIT would be part of #9898. BTW, REPL and rust tool would be nice for user friendliness (great for newcomers to the language).

bors added a commit that referenced this pull request Dec 5, 2013
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).
bors added a commit that referenced this pull request Dec 6, 2013
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.
@bors bors closed this Dec 6, 2013
@alexcrichton alexcrichton deleted the upgrade-llvm branch December 6, 2013 07:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants