Skip to content

Update to LLVM 23 - #158734

Merged
rust-bors[bot] merged 14 commits into
rust-lang:mainfrom
nikic:llvm23
Aug 5, 2026
Merged

Update to LLVM 23#158734
rust-bors[bot] merged 14 commits into
rust-lang:mainfrom
nikic:llvm23

Conversation

@nikic

@nikic nikic commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

View all comments

Changes in this PR (apart from the LLVM update):

  • Updated cov-map tests due to minor ordering changes introduced in llvm/llvm-project@5931034. The affected tests are limited to LLVM >= 23 now.
  • Set LLVM_VERSIONED_DYLIB_NAME_ON_DARWIN=OFF, which restores the previous unversioned naming of the LLVM dylib on Darwin. I expect we'll want to change this for consistency with Linux, but given the amount of trouble Darwin dylibs have caused in the past, I'm not trying to do it in this PR.
  • Distribute the llvm-project/libc subproject, which is now a build dependency of LLVM.
  • Pull in f128 Windows ABI changes from adjust f128 windows abi for LLVM 23 #158778. These need to land in sync with the LLVM update (as ABI of libcalls is controlled by LLVM, not our ABI lowering).
  • Disable RISCV backend on dist-i686-mingw, because the build OOMs on a large generated file. This is a temporary measure until host tools are removed by Drop tier 2 i686-pc-windows-gnu host tools compiler-team#1020.
  • The llvm-project fork includes a new downstream patch for mingw: rust-lang/llvm-project@b89cd8e It works around mingw having broken TLS prior to GCC 16. (We're currently on GCC 14.)

Issues:

@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jul 3, 2026
@nikic

nikic commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jul 3, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 3, 2026
@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-bors Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

💔 Test for b003a3f failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rustbot rustbot added A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Jul 13, 2026
@nikic

nikic commented Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 13, 2026
@rust-bors

rust-bors Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 0259978 failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@nikic

nikic commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 14, 2026
@rust-bors

rust-bors Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 4973bfc failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@jakubadamw

Copy link
Copy Markdown
Contributor

This ain't going nowhere:

[60/130] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.osx.dir/sanitizer_stackdepot.cpp.o Stuck for an hour., dist-x86-64-apple again

Stuck in dist-x86_64-apple again, at the same file:

  [58/130] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonCoverage.osx.dir/sanitizer_coverage_libcdep_new.cpp.o
  [59/130] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.osx.dir/sanitizer_stacktrace.cpp.o
  [60/130] Building CXX object lib/sanitizer_common/CMakeFiles/RTSanitizerCommonSymbolizer.osx.dir/sanitizer_stackdepot.cpp.o

Could it possibly be genuine?

@RalfJung

RalfJung commented Aug 5, 2026 via email

Copy link
Copy Markdown
Member

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

I'm inclined to just let it continue, github sometimes just stops showing log output even if a job is (slowly) making progress

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Actually just took a look, dist-x86_64-apple just finished

@rust-bors

rust-bors Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: cuviper
Duration: 3h 8m 44s
Pushing 1b29cfd to main...

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling glob-match v0.2.1
   Compiling diff v0.1.13
   Compiling citool v0.1.0 (/home/runner/work/rust/rust/src/ci/citool)
    Finished `release` profile [optimized] target(s) in 44.73s
     Running `target/release/citool post-merge-report 7218ebe93668f51a94a572b690c433dfdbdc2c3d 1b29cfdbee8ee37333f4b24afb936350eb57e705`
Downloading metrics of job aarch64-gnu
Downloading metrics of job aarch64-gnu-debug
Downloading metrics of job arm-android
Downloading metrics of job armhf-gnu
Downloading metrics of job dist-aarch64-linux
Downloading metrics of job dist-android
Downloading metrics of job dist-arm-linux-gnueabi

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (1b29cfd): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.5% [0.2%, 0.7%] 14
Regressions ❌
(secondary)
1.7% [0.0%, 9.1%] 27
Improvements ✅
(primary)
-2.6% [-16.8%, -0.2%] 208
Improvements ✅
(secondary)
-2.0% [-11.9%, -0.0%] 246
All ❌✅ (primary) -2.4% [-16.8%, 0.7%] 222

Max RSS (memory usage)

Results (primary 0.1%, secondary -0.8%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
4.1% [0.4%, 6.8%] 3
Regressions ❌
(secondary)
3.3% [2.3%, 4.4%] 9
Improvements ✅
(primary)
-0.9% [-2.0%, -0.5%] 13
Improvements ✅
(secondary)
-1.7% [-5.1%, -0.4%] 39
All ❌✅ (primary) 0.1% [-2.0%, 6.8%] 16

Cycles

Results (primary -4.5%, secondary -2.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.7% [0.5%, 0.8%] 5
Regressions ❌
(secondary)
7.3% [1.2%, 13.5%] 13
Improvements ✅
(primary)
-4.9% [-12.6%, -0.4%] 66
Improvements ✅
(secondary)
-4.0% [-9.0%, -0.5%] 62
All ❌✅ (primary) -4.5% [-12.6%, 0.8%] 71

Binary size

Results (primary -0.2%, secondary -0.6%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.0% [0.0%, 0.1%] 17
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 5
Improvements ✅
(primary)
-0.3% [-1.3%, -0.0%] 52
Improvements ✅
(secondary)
-0.7% [-1.3%, -0.0%] 102
All ❌✅ (primary) -0.2% [-1.3%, 0.1%] 69

Bootstrap: 496.187s -> 457.809s (-7.73%)
Artifact size: 391.37 MiB -> 399.29 MiB (2.02%)

@nnethercote

Copy link
Copy Markdown
Contributor

Wow, bootstrap down by 7.7%, among all the other improvements.

@ZuseZ4

ZuseZ4 commented Aug 5, 2026

Copy link
Copy Markdown
Member

Also why does this optional autodiff job keep failing? Will every PR get those errors posted by the bot if this one lands?

It's intentionally not blocking yet and did it's job of giving us some heads-up, so we could develop a fix that now just needs to land: #160532

@RalfJung

RalfJung commented Aug 5, 2026

Copy link
Copy Markdown
Member

It's intentionally not blocking yet

I get that from the name, but it'd be bad if the bot posted a message saying this job failed in every single PR, like it did here. I guess we'll see whether it does that...

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

It does
#159026 (comment)

@Kobzol

Kobzol commented Aug 5, 2026

Copy link
Copy Markdown
Member

I can patch rust-log-analyzer to ignore the optional jobs. Though we will then lose our only channel that tells us that they broke 🤔

@folkertdev

Copy link
Copy Markdown
Contributor

it could at least say that it's an optional job, and that those are expected to occasionally fail. Because as-is, you need to go check what went wrong (is it my fault?) and then if it's not, what do you do with this failure (it's not actionable).

@scottmcm

scottmcm commented Aug 5, 2026

Copy link
Copy Markdown
Member

Wow, -6.9% runtime wall clock on that raytracer benchmark!
image
I wonder what difference made such a huge change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: Our Github Actions CI A-compiler-builtins Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc F-autodiff `#![feature(autodiff)]` merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.