First round of LLVM 6.0.0 compatibility#47710
Merged
bors merged 7 commits intorust-lang:masterfrom Jan 26, 2018
Merged
Conversation
LLVM has since removed the `CodeModel::Default` enum value in favor of an `Optional` implementationg throughout LLVM. Let's mirror the same change in Rust and update the various bindings we call accordingly. Removed in llvm-mirror/llvm@9aafb854c
Just bog-standard compile error fixed by adding some new header files
Looks like they did some refactoring of flags in the backend and this should catch us up! The "unsafe algebra" boolean has been split into a number of boolean flags for various operations, and this updates to use the `setFast` function which should hopefully have the same behavior as before. This was updated in llvm-mirror/llvm@00e900afd
It looks like LLVM also removed it in llvm-mirror/llvm@f45adc29d in favor of the name "GNU64". This was added in the thought that we'd need such a variant when adding mips64 support but we ended up not needing it! For now let's just removing the various support on the Rust side of things.
Updated in llvm-mirror/llvm@203c90ba this function now just returns an `Error`, so this updates the C++ bindings accordingly
The comment for why cloning exists doesn't actually apply for wasm today and apparently cloning is causing subtle bugs in LLVM, so let's just avoid it altogether. More specifically after we emit the assembly for the wasm target we don't actually use the module again, so there's no need to keep both around. This seemed to be causing some scary verifier assertions in LLVM which seemed to be uncovered by presumably (?) buggy behavior. Let's just avoid it for now and make the wasm target slightly more lean in the process.
Contributor
|
(rust_highfive has picked a reviewer for you, use r? to override) |
18 tasks
Contributor
Collaborator
|
📌 Commit cf5b520 has been approved by |
Collaborator
|
💡 This pull request was already approved, no need to approve it again.
|
Collaborator
|
📌 Commit cf5b520 has been approved by |
Looks like the clang with 16.04 fails to compile LLVM 6, but it looks like clang in 18.04 can indeed compile LLVM 6.
cf5b520 to
e9a6499
Compare
Member
Author
|
@bors: r=nikomatsakis |
Collaborator
|
📌 Commit e9a6499 has been approved by |
alexcrichton
added a commit
to alexcrichton/rust
that referenced
this pull request
Jan 25, 2018
…atsakis First round of LLVM 6.0.0 compatibility This includes a number of commits for the first round of upgrading to LLVM 6. There are still [lingering bugs](rust-lang#47683) but I believe all of this will nonetheless be necessary!
Member
Member
Author
|
@bors: r- nah that was accidentally. When including this in #47748 I've removed the submodule and if that doesn't land I'll update this PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This includes a number of commits for the first round of upgrading to LLVM 6. There are still lingering bugs but I believe all of this will nonetheless be necessary!