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.

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job optional-x86_64-gnu-autodiff failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)

---- [codegen] tests/codegen-llvm/autodiff/abi_handling.rs#debug stdout ----
------rustc stdout------------------------------

------rustc stderr------------------------------
rustc: /checkout/src/llvm-project/llvm/include/llvm/ADT/APInt.h:127: llvm::APInt::APInt(unsigned int, uint64_t, bool, bool): Assertion `llvm::isUIntN(BitWidth, val) && "Value is not an N-bit unsigned value"' failed.

------------------------------------------

error in revision `debug`: compilation failed!
status: signal: 6 (SIGABRT) (core dumped)
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/codegen-llvm/autodiff/abi_handling.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--cfg" "debug" "--check-cfg" "cfg(test,FALSE,debug,release)" "-O" "-Cdebug-assertions=no" "-Zcodegen-source-order" "--emit" "llvm-ir" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/autodiff/abi_handling.debug/abi_handling.ll" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Zautodiff=Enable,NoTT" "-C" "opt-level=0" "-Clto=fat"
stdout: none
--- stderr -------------------------------
rustc: /checkout/src/llvm-project/llvm/include/llvm/ADT/APInt.h:127: llvm::APInt::APInt(unsigned int, uint64_t, bool, bool): Assertion `llvm::isUIntN(BitWidth, val) && "Value is not an N-bit unsigned value"' failed.
------------------------------------------

---- [codegen] tests/codegen-llvm/autodiff/abi_handling.rs#debug stdout end ----

failures:
---
failures:

---- [ui] tests/ui/autodiff/incremental.rs#DEBUG stdout ----

error in revision `DEBUG`: test compilation failed although it shouldn't!
status: signal: 6 (SIGABRT) (core dumped)
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/autodiff/incremental.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--cfg" "debug" "--check-cfg" "cfg(test,FALSE,debug,release)" "-C" "incremental=/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/autodiff/incremental.DEBUG/incremental.inc" "-Z" "incremental-verify-ich" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/autodiff/incremental.DEBUG" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-Zautodiff=Enable,NoTT" "-Copt-level=0" "-Clto=fat" "-Cdebuginfo=2" "-Ccodegen-units=8"
stdout: none
--- stderr -------------------------------
rustc: /checkout/src/llvm-project/llvm/include/llvm/ADT/APInt.h:127: llvm::APInt::APInt(unsigned int, uint64_t, bool, bool): Assertion `llvm::isUIntN(BitWidth, val) && "Value is not an N-bit unsigned value"' failed.
------------------------------------------

---- [ui] tests/ui/autodiff/incremental.rs#DEBUG stdout end ----

failures:
---
[TIMING:end] test::Ui { test_compiler: Compiler { stage: 2, host: x86_64-unknown-linux-gnu, forced_compiler: false }, target: x86_64-unknown-linux-gnu } -- 0.000

2 command(s) did not execute successfully:

  - env -u CARGO DOC_RUST_LANG_ORG_CHANNEL="https://doc.rust-lang.org/nightly" LD_LIBRARY_PATH="" RUSTC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/rustc" RUSTC_BOOTSTRAP="1" RUSTC_FORCE_RUSTC_VERSION="compiletest" RUST_TEST_THREADS="4" RUST_TEST_TMPDIR="/checkout/obj/build/tmp" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools-bin/compiletest" "--stage" "2" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--minicore-path" "/checkout/tests/auxiliary/minicore.rs" "--src-root" "/checkout" "--src-test-suite-root" "/checkout/tests/codegen-llvm" "--build-root" "/checkout/obj/build" "--build-test-suite-root" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm" "--sysroot-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--suite" "codegen-llvm" "--mode" "codegen" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--default-codegen-backend" "llvm" "--has-enzyme" "--optimize-tests" "--host-rustcflags" "-Crpath" "--host-rustcflags" "-Cdebuginfo=0" "--target-rustcflags" "-Crpath" "--target-rustcflags" "-Cdebuginfo=0" "--python" "/usr/bin/python3" "autodiff" "--verbose-run-make-subprocess-output" "--with-rustc-debug-assertions" "--with-std-debug-assertions" "--jobs" "4" "--llvm-version" "23.1.0-rust-1.99.0-nightly" "--llvm-components" "aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils abi aggressiveinstcombine all all-targets amdgpu amdgpuasmparser amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo amdgputargetmca amdgpuutils analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler bpfinfo cas cfguard cgdata codegen codegentypes core coroutines coverage csky cskyasmparser cskycodegen cskydesc cskydisassembler cskyinfo debuginfobtf debuginfocodeview debuginfodwarf debuginfodwarflowlevel debuginfogsym debuginfologicalview debuginfomsf debuginfopdb demangle dlltooldriver dtlto dwarfcfichecker dwarflinker dwarflinkerclassic dwarflinkerparallel dwp engine executionengine extensions filecheck frontendatomic frontenddirective frontenddriver frontendhlsl frontendoffloading frontendopenacc frontendopenmp fuzzercli fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo hipstdpar instcombine instrumentation interfacestub interpreter ipo irprinter irreader jitlink libdriver lineeditor linker loongarch loongarchasmparser loongarchcodegen loongarchdesc loongarchdisassembler loongarchinfo lto m68k m68kasmparser m68kcodegen m68kdesc m68kdisassembler m68kinfo mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts objcopy object objectyaml option orcdebugging orcjit orcshared orctargetprocess passes plugins powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvtargetmca runtimedyld sandboxir scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support supportlsp symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target targetparser telemetry textapi textapibinaryreader transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo webassemblyutils windowsdriver windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86targetmca xray xtensa xtensaasmparser xtensacodegen xtensadesc xtensadisassembler xtensainfo" "--cc" "" "--cxx" "" "--cflags" "" "--cxxflags" "" "--channel" "nightly" "--git-hash" "--nightly-branch" "main" "--git-merge-commit-email" "bors@rust-lang.org" (failure_mode=Exit)
  - env -u CARGO DOC_RUST_LANG_ORG_CHANNEL="https://doc.rust-lang.org/nightly" LD_LIBRARY_PATH="" RUSTC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/rustc" RUSTC_BOOTSTRAP="1" RUSTC_FORCE_RUSTC_VERSION="compiletest" RUST_TEST_THREADS="4" RUST_TEST_TMPDIR="/checkout/obj/build/tmp" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools-bin/compiletest" "--stage" "2" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--minicore-path" "/checkout/tests/auxiliary/minicore.rs" "--src-root" "/checkout" "--src-test-suite-root" "/checkout/tests/ui" "--build-root" "/checkout/obj/build" "--build-test-suite-root" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--sysroot-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--suite" "ui" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" "--default-codegen-backend" "llvm" "--has-enzyme" "--optimize-tests" "--host-rustcflags" "-Crpath" "--host-rustcflags" "-Cdebuginfo=0" "--host-rustcflags" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath" "--target-rustcflags" "-Cdebuginfo=0" "--target-rustcflags" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--python" "/usr/bin/python3" "autodiff" "feature-gates/feature-gate-autodiff.rs" "--verbose-run-make-subprocess-output" "--with-rustc-debug-assertions" "--with-std-debug-assertions" "--jobs" "4" "--llvm-version" "23.1.0-rust-1.99.0-nightly" "--llvm-components" "aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils abi aggressiveinstcombine all all-targets amdgpu amdgpuasmparser amdgpucodegen amdgpudesc amdgpudisassembler amdgpuinfo amdgputargetmca amdgpuutils analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler bpfinfo cas cfguard cgdata codegen codegentypes core coroutines coverage csky cskyasmparser cskycodegen cskydesc cskydisassembler cskyinfo debuginfobtf debuginfocodeview debuginfodwarf debuginfodwarflowlevel debuginfogsym debuginfologicalview debuginfomsf debuginfopdb demangle dlltooldriver dtlto dwarfcfichecker dwarflinker dwarflinkerclassic dwarflinkerparallel dwp engine executionengine extensions filecheck frontendatomic frontenddirective frontenddriver frontendhlsl frontendoffloading frontendopenacc frontendopenmp fuzzercli fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo hipstdpar instcombine instrumentation interfacestub interpreter ipo irprinter irreader jitlink libdriver lineeditor linker loongarch loongarchasmparser loongarchcodegen loongarchdesc loongarchdisassembler loongarchinfo lto m68k m68kasmparser m68kcodegen m68kdesc m68kdisassembler m68kinfo mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts objcopy object objectyaml option orcdebugging orcjit orcshared orctargetprocess passes plugins powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvtargetmca runtimedyld sandboxir scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support supportlsp symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target targetparser telemetry textapi textapibinaryreader transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo webassemblyutils windowsdriver windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86targetmca xray xtensa xtensaasmparser xtensacodegen xtensadesc xtensadisassembler xtensainfo" "--cc" "" "--cxx" "" "--cflags" "" "--cxxflags" "" "--channel" "nightly" "--git-hash" "--nightly-branch" "main" "--git-merge-commit-email" "bors@rust-lang.org" (failure_mode=Exit)
Bootstrap failed while executing `test --stage 2 --no-fail-fast tests/codegen-llvm/autodiff tests/pretty/autodiff tests/ui/autodiff tests/ui/feature-gates/feature-gate-autodiff.rs`
Currently active steps:
Build completed unsuccessfully in 0:55:51
  local time: Wed Aug  5 07:14:04 UTC 2026
  network time: Wed, 05 Aug 2026 07:14:04 GMT

Important

For more information how to resolve CI failures of this job, visit this link.

@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.