-
Notifications
You must be signed in to change notification settings - Fork 12.6k
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
Allow configuring to use llvm-root with 3.0, 3.0svn, 3.1, 3.1svn #2985
Conversation
I was under the impression that we made use of a custom branch of LLVM. If we don't now, we soon will with the upcoming work on adding support for tracing (though that will get merged back someday). @brson / @graydon / @pcwalton can you confirm? in that case, does it make sense to allow support for normal LLVM installations? |
As far as I know, the Rust branch of LLVM only has small changes to instructions for garbage collection. At least it compiles and works perfectly with an official version of LLVM. I didn't know that the branch would be getting new stuff. |
I'll take this. |
Merged as of de5c15e |
make full field retagging the default The 'scalar' field retagging mode is clearly a hack -- it mirrors details of the codegen backend and how various structs are represented in LLVM. This means whether code has UB or not depends on surprising aspects, such as whether a struct has 2 or 3 (non-zero-sized) fields. Now that both hashbrown and scopeguard have released fixes to be compatible with field retagging, I think it is time to enable full field retagging by default. `@saethlin` do you have an idea of how much fallout enabling full field retagging by default will cause? Do you have objections to enabling it by default? Fixes rust-lang/miri#2528
Previously, the code assumed that all metrics of the benchmark results would be 'declared' in the "metrics" key of the parser output. This commit ensures that if a parser emits a benchmark containing a metric that hasn't been declared in the "metrics" key, that result is ignored and benchcomp does not crash.
This is a few patches that allows using
llvm-root
with SVN and stable releases. This allows people to use a globally installed LLVM, which didn't work before because of the following reasons:llvm-root
didn't accept the straight 3.1 and 3.0 releases. I've changed the configure script to allow 3.0, 3.0svn, 3.1 and 3.1svn. I'm not sure if 3.0 actually even works, but I just assumed it did because of the error message that was already there.RustWrapper.cc
was initializing all targets whereasrustllvm.def.in
was only linking to X86 (including X86_64) because that's all Rust supports generating machine code for. I've changedRustWrapper.cc
to only initialize the targets that Rust currently actually supports.I am not entirely sure of the status of ARM in Rust (I see a few mentions of it in the source code), so I'm not sure whether that should be initialized / linked in as well (it is currently not linked into in
rustllvm.def.in
). Another thing isrustllvm.def.in
has repeated mentions of the X86 initialization functions, I'm not sure whether that is intentional or not.