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

Allow configuring to use llvm-root with 3.0, 3.0svn, 3.1, 3.1svn #2985

Closed
wants to merge 5 commits into from
Closed

Allow configuring to use llvm-root with 3.0, 3.0svn, 3.1, 3.1svn #2985

wants to merge 5 commits into from

Conversation

z0w0
Copy link
Contributor

@z0w0 z0w0 commented Jul 22, 2012

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 whereas rustllvm.def.in was only linking to X86 (including X86_64) because that's all Rust supports generating machine code for. I've changed RustWrapper.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 is rustllvm.def.in has repeated mentions of the X86 initialization functions, I'm not sure whether that is intentional or not.

@nikomatsakis
Copy link
Contributor

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?

@z0w0
Copy link
Contributor Author

z0w0 commented Jul 23, 2012

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.

@ghost ghost assigned graydon Jul 23, 2012
@graydon
Copy link
Contributor

graydon commented Jul 23, 2012

I'll take this.

@graydon
Copy link
Contributor

graydon commented Jul 25, 2012

Merged as of de5c15e

@graydon graydon closed this Jul 25, 2012
RalfJung pushed a commit to RalfJung/rust that referenced this pull request Jul 23, 2023
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
celinval pushed a commit to celinval/rust-dev that referenced this pull request Jun 4, 2024
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.
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