Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign uprustc: Upgrade to LLVM 6 #47828
Conversation
rust-highfive
assigned
nikomatsakis
Jan 28, 2018
This comment has been minimized.
This comment has been minimized.
|
(rust_highfive has picked a reviewer for you, use r? to override) |
This comment has been minimized.
This comment has been minimized.
|
Note that this is currently based on #47730 which I'll rebase out once that lands. Also @rust-lang/infra could this get a perf run and a crater run? (to hopefully head of anything massive!) @bors: try |
This comment has been minimized.
This comment has been minimized.
bors
added a commit
that referenced
this pull request
Jan 28, 2018
kennytm
added
S-waiting-on-review
T-compiler
labels
Jan 28, 2018
This comment has been minimized.
This comment has been minimized.
|
|
shepmaster
added
the
S-waiting-on-crater
label
Jan 29, 2018
This comment has been minimized.
This comment has been minimized.
|
Perf comparison shows that nothing is too bad! |
alexcrichton
force-pushed the
alexcrichton:llvm-6
branch
from
d9031ae
to
c6b215b
Jan 29, 2018
kennytm
removed
the
S-waiting-on-review
label
Jan 29, 2018
This comment has been minimized.
This comment has been minimized.
|
Up to 13.5% improvement... wow. |
alexcrichton
force-pushed the
alexcrichton:llvm-6
branch
from
c6b215b
to
586488c
Jan 29, 2018
This comment has been minimized.
This comment has been minimized.
|
@bors r+ Let's do it. |
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
Maybe update run-pass/sse2 to Apart from that, testing on this branch also looks good with external LLVM 5. |
This comment has been minimized.
This comment has been minimized.
|
I did some investigation on the FreeBSD issue. FreeBSD 10 uses Clang 3.0. Clang didn't support std::atomic until 3.3. I think that's all the issue is. FreeBSD 10 is only supported until Oct 31 of this year, so it should be safe to update that soon enough. |
This comment has been minimized.
This comment has been minimized.
kennytm
added
S-waiting-on-bors
and removed
S-waiting-on-crater
labels
Jan 30, 2018
This comment has been minimized.
This comment has been minimized.
|
@bors p=1 |
This comment has been minimized.
This comment has been minimized.
bors
added a commit
that referenced
this pull request
Jan 30, 2018
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
|
Assuming spurious first. Could not compile
|
This comment has been minimized.
This comment has been minimized.
|
@bors: r- nah I saw that in development and thought it was spurious, at this point I sort of doubt it is... |
kennytm
added
S-waiting-on-author
and removed
S-waiting-on-bors
labels
Jan 30, 2018
This comment has been minimized.
This comment has been minimized.
|
I see access violations all the time when building on Windows using master, rebuilding makes it go away, so this error might be spurious. |
kennytm
referenced this pull request
Feb 10, 2018
Closed
Spurious (?) error in "compile-fail\rfc-2126-extern-in-paths\single-segment.rs" etc #48116
alexcrichton
deleted the
alexcrichton:llvm-6
branch
Feb 10, 2018
This comment has been minimized.
This comment has been minimized.
|
@kennytm I'm sort of just glad to have this done with, but I'll send a follow-up to clean up that code. With #47657 (comment) though it seems like it's not helping anyway... |
bluss
added
the
relnotes
label
Feb 10, 2018
alexcrichton
added a commit
to alexcrichton/rust
that referenced
this pull request
Feb 10, 2018
alexcrichton
referenced this pull request
Feb 10, 2018
Merged
Explain unusual debugging code in librustc #48124
This comment has been minimized.
This comment has been minimized.
bors bot
added a commit
to phil-opp/blog_os
that referenced
this pull request
Feb 10, 2018
kennytm
added a commit
to kennytm/rust
that referenced
this pull request
Feb 10, 2018
This was referenced Feb 10, 2018
This comment has been minimized.
This comment has been minimized.
|
@shepmaster oh I was just linking to the failure on #47657, but yeah #48116 is in general tracking the failure. |
This was referenced Feb 10, 2018
kellerkindt
referenced this pull request
Feb 11, 2018
Open
RFC: Merging the avr-rust fork upstream #44052
alexcrichton
referenced this pull request
Feb 11, 2018
Closed
`stdsimd` fails to build with `target_cpu=skylake-avx512` #157
andjo403
referenced this pull request
Feb 14, 2018
Open
LLVM's pass ordering chokes on zero-cost abstractions. #44041
This comment has been minimized.
This comment has been minimized.
fzzr-
commented
Feb 14, 2018
|
Now really looking forward to the bitcode feature of LLVM7. Today - LLVM6, tomorrow - LLVM7! |
rkruppe
referenced this pull request
Feb 15, 2018
Closed
compiletime can blow up when building with optimizations and debug info #48226
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton rust-lang/llvm@9eb9267 - https://bugs.llvm.org/show_bug.cgi?id=36096 |
dwrensha
referenced this pull request
Feb 18, 2018
Closed
ERROR: __sanitizer_reset_coverage is not defined. Exiting. #144
This comment has been minimized.
This comment has been minimized.
gaming-hacker
commented
Apr 7, 2018
|
Not to nag but has this issue with llvm-60 been resolved on OSX/Linux and merged into master? |
This comment has been minimized.
This comment has been minimized.
|
Yes it has been merged. You can tell by scrolling to the top of the page and checking out the header: If you click through to the commit, you can see which tags the commit is part of: You can also check out the 1.25 release notes which lists this (emphasis mine):
|
This comment has been minimized.
This comment has been minimized.
gaming-hacker
commented
Apr 14, 2018
|
Ah thanks, i use source tree as a gui to display the status of the commits and it shows these as unmerged, i'll report a bug to source tree. |


alexcrichton commentedJan 28, 2018
•
edited
The following submodules have been updated for a new version of LLVM:
src/llvmsrc/libcompiler_builtins- transitively contains compiler-rtsrc/dlmallocThis also updates the docker container for dist-i686-freebsd as the old 16.04
container is no longer capable of building LLVM. The
compiler-rt/compiler-builtins and dlmalloc updates are pretty routine without
much interesting happening, but the LLVM update here is of particular note.
Unlike previous updates I haven't cherry-picked all existing patches we had on
top of our LLVM branch as we have a huge amount and have at this
point forgotten what most of them are for. Instead I started from the current
release_60branch in LLVM and only applied patches that were necessary to getour tests working and building.
The current set of custom rustc-specific patches included in this LLVM update are:
cfg(target_feature)for now and continues to not be upstreamed. While ahazard for SIMD stabilization this commit is otherwise keeping the status
quo of a small rustc-specific feature.
upstreamed, notably teaching LLVM about our allocation-related routines (which
aren't malloc/free). Once we stabilize the global allocator routines we will
likely want to upstream this patch, but for now it seems reasonable to keep it
on our fork.
our 32-bit linux container. I'm not really sure why it's necessary but my
guess is that it's because of the absolutely ancient glibc that we're using.
In any case it's only updating pieces we're not actually using in LLVM so I'm
hoping it'll turn out alright. This doesn't seem like something we'll want to
upstream.c
i686-freebsd container, I'm not really sure what's going on but we for sure
probably don't want to upstream this and otherwise it seems not too bad for
now at least.
which although diagnosed to a particular revision isn't currently fixed
upstream (and the bug itself doesn't seem too active). This commit is a
partial revert of the suspected cause of this regression (found via a
bisection). I'm sort of hoping that this eventually gets fixed upstream with a
similar fix (which we can replace in our branch), but for now I'm also hoping
it's a relatively harmless change to have.
After applying these patches (plus one backport which should be backported
upstream) I believe we should have all tests working on all
platforms in our current test suite. I'm like 99% sure that we'll need some more
backports as issues are reported for LLVM 6 when this propagates through
nightlies, but that's sort of just par for the course nowadays!
In any case though some extra scrutiny of the patches here would definitely be
welcome, along with scrutiny of the "missing patches" like a change to pass
manager order, another change to pass manager
order, some compile fixes for
sparc, and some fixes for
solaris.
The update to LLVM 6 is desirable for a number of reasons, notably:
features as they start landing.
especially around AVX-512 and such.
in the LLVM 4 branch we're using.
This update is mostly powered by #47730 which is allowing us to update LLVM
independent of the version of LLVM that Emscripten is locked to. This means
that when compiling code for Emscripten we'll still be using the old LLVM 4
backend, but when compiling code for any other target we'll be using the new
LLVM 6 target. Once Emscripten updates we may no longer need this distinction,
but we're not sure when that will happen!
Closes #43370
Closes #43418
Closes #47015
Closes #47683
Closes rust-lang-nursery/stdsimd#157
Closes rust-lang-nursery/rust-wasm#3