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

Phase out LLVM versions older than 5.0.0 ? #51878

Closed
gnzlbg opened this issue Jun 28, 2018 · 6 comments
Closed

Phase out LLVM versions older than 5.0.0 ? #51878

gnzlbg opened this issue Jun 28, 2018 · 6 comments

Comments

@gnzlbg
Copy link
Contributor

gnzlbg commented Jun 28, 2018

With the current push for SIMD intrinsics, nigthly Rust already relies on a bunch of intrinsics that are only available in LLVM 5, 6, and some which are only bug-free on LLVM 7. Stable features like target_feature/cfg_target_feature also don't really work properly with older LLVMs (they require at least LLVM 6 IIRC, cc @alexcrichton).

These are the release dates of the most recent LLVM versions:

16 May 2018 | LLVM 5.0.2
8 Mar 2018 | LLVM 6.0.0
21 Dec 2017 | LLVM 5.0.1
07 Sep 2017 | LLVM 5.0.0
04 Jul 2017 | LLVM 4.0.1
13 Mar 2017 | LLVM 4.0.0

Supporting an LLVM that is at least two releases old appears reasonable to me: with LLVM 7 being released in August this would mean that maybe we can bump the minimum version to LLVM 5.0.x.

I'd like to ask stakeholders to please chime in and mention which LLVM versions they are currently shipping Rust with, and what would be the minimum version that it would make sense for them.

cc @cuviper @rkruppe

@gnzlbg gnzlbg changed the title Phase out LLVM versions older than 5.0.0 Phase out LLVM versions older than 5.0.0 ? Jun 28, 2018
@gnzlbg
Copy link
Contributor Author

gnzlbg commented Jun 28, 2018

cc @infinity0 @aidanhs @est31

@cuviper
Copy link
Member

cuviper commented Jun 28, 2018

  • Fedora Rawhide has LLVM 6.0.1 (not official yet, but @tstellar is both packager and release manager)
  • Fedora 28 has LLVM 6.0.0, will get 6.0.1 soon
  • Fedora 27 has LLVM 5.0.2
  • EPEL7 (extras for RHEL7) has LLVM 5.0.1
  • For Red Hat SCLs, rust-toolset uses llvm-toolset, currently at 5.0.1

So LLVM 5 would be fine for me.

@alexcrichton
Copy link
Member

We've never really had a strict policy about what LLVM versions to support or what it even means to "support" an older version of LLVM. Most of the time the stock LLVM releases never pass our full test suite on all the platforms (but very often pass the full x86_64 linux suite). Stock LLVM releases tend to also quite commonly miss out on backports to fix bugs and/or otherwise fix performance issues as well.

For all those reasons I personally view our support of stock older LLVM releases as pretty nebulous. There's already a good deal of functionality that doesn't work per se or will break on "flavorful programs". I'd personally be totally fine to lump in SIMD with these releases as well.

All that being said though I don't have any problems dropping support for pre-5.0 versions either!

@cuviper
Copy link
Member

cuviper commented Jun 29, 2018

src/llvm-emscripten is still on LLVM 4 -- do we have a plan to update or abandon that?

@alexcrichton
Copy link
Member

Ah that's an Emscripten-specific LLVM which doesn't deal with SIMD or distros really. We'll upgrade that entirely independently of other backends and we just track Emscripten upstream

@infinity0
Copy link
Contributor

Debian rustc is on LLVM 6.0 and we typically have 5-15 failing tests on the most common architectures, so this seems fine for me.

bors added a commit that referenced this issue Jul 9, 2018
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

No branches or pull requests

4 participants