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

LLVM upgrades #6713

Closed
wants to merge 5 commits into from
Closed

Conversation

alexcrichton
Copy link
Member

This includes some of @brson's patches, plus one of mine. A multithreaded-llvm is necessary for running rusti tests in parallel, and in general is a good idea for running rustc in parallel.

bors added a commit that referenced this pull request May 24, 2013
This includes some of @brson's patches, plus one of mine. A multithreaded-llvm is necessary for running `rusti` tests in parallel, and in general is a good idea for running `rustc` in parallel.
@alexcrichton
Copy link
Member Author

It turns out that this change completely breaks rusti. After a lot of debugging, it turned out that the MCJIT of LLVM was also completely broken. After bisecting the LLVM revision which broke it, I realized I could update to the most current LLVM instead. Indeed, this fixed the MCJIT when I check out the changes from https://github.com/chapuni/llvm.

@brson, can you pull in the upstream LLVM changes into your branch? I could do so as well, but I'm not sure how many patches are custom to rust. I don't mind testing to make sure that LLVM passes by pushing through try.

I don't think that bors will be able to handle this request normally. It'll need to be pushed to incoming manually, and then the bots need to all get their llvm workspaces wiped.

@brson
Copy link
Contributor

brson commented May 25, 2013

@alexcrichton I rebased onto llvm trunk and pushed a rust commit that you can cherry-pick to my 'llvm' branch https://github.com/brson/rust/tree/llvm. Still testing it here.

@brson
Copy link
Contributor

brson commented May 25, 2013

@alexcrichton Thanks for porting rustllvm. Sadly this branch doesn't build for me:

compile_and_link: x86_64-unknown-linux-gnu/stage1/lib/rustc/x86_64-unknown-linux-gnu/lib/libstd.so
/home/brian/dev/rust2/src/libstd/ptr.rs:130:8: 130:51 warning: unused import [-W unused-imports (default)]
/home/brian/dev/rust2/src/libstd/ptr.rs:130     use memcpy64 = unstable::intrinsics::memmove64;
                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rustc: /opt/dev/rust2/src/llvm/lib/IR/Attributes.cpp:119: llvm::StringRef llvm::Attribute::getKindAsString() const: Assertion `isStringAttribute() && "Invalid attribute type to get the kind as a string!"' failed.
Stack dump:
0.      Running pass 'Function Pass Manager' on module 'std.rc'.
1.      Running pass 'Module Verifier' on function '@_ZN8unstable10intrinsics12cosf32_1247416_54d9ca723652f656_07preE'
Aborted
make: *** [x86_64-unknown-linux-gnu/stage1/lib/rustc/x86_64-unknown-linux-gnu/lib/libstd.so] Error 134

@alexcrichton
Copy link
Member Author

@brson I've been debugging this today, I've got a fix on the way, just going to make sure that it passes check-stage2-rusti first

@alexcrichton
Copy link
Member Author

The build failures/bugs are probably best explained by the commits

@alexcrichton
Copy link
Member Author

Just to keep this updated, this is currently blocked on a mysterious windows failure which comes from the upstream LLVM changes.

bors added a commit that referenced this pull request Jun 11, 2013
…=graydon

This is a reopening of #6570, and almost fixes #6511.

Note that this doesn't actually enable building a threadsafe LLVM, because that will require an LLVM rebuild which will be bundled with the upgrades in #6713.

What this does do, however, is removes all thread-unsafe usage of LLVM from the compiler.
bors added a commit that referenced this pull request Jun 11, 2013
…=graydon

This is a reopening of #6570, and almost fixes #6511.

Note that this doesn't actually enable building a threadsafe LLVM, because that will require an LLVM rebuild which will be bundled with the upgrades in #6713.

What this does do, however, is removes all thread-unsafe usage of LLVM from the compiler.
brson and others added 5 commits June 11, 2013 15:10
* LLVM now has a C interface to LLVMBuildAtomicRMW
* The exception handling support for the JIT seems to have been dropped
* Various interfaces have been added or headers have changed
At the same time create a more robust wrapper to try to prevent this type of
issue from cropping up in the future.
@graydon graydon closed this Jun 13, 2013
@alexcrichton alexcrichton mentioned this pull request Jun 13, 2013
bors added a commit that referenced this pull request Jul 5, 2013
This is a reopening of #6713

This is still blocked on windows failures. I'll re-push try once the existing crisis has passed.
bors added a commit that referenced this pull request Aug 4, 2013
This is a reopening of #6713

This is still blocked on windows failures. I'll re-push try once the existing crisis has passed.
flip1995 pushed a commit to flip1995/rust that referenced this pull request Feb 25, 2021
Add the from_str_radix_10 lint

changelog: added the new `from_str_radix_10` which sometimes replaces calls to `primitive::from_str_radix` to `str::parse`

This is ready to be merged, although maybe the category should be `pedantic` instead of `style`? I'm not sure where it fits better.

Closes rust-lang#6713.
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