Skip to content

Rollup of 5 pull requests#159498

Merged
rust-bors[bot] merged 11 commits into
rust-lang:mainfrom
jhpratt:rollup-vbOXcq6
Jul 18, 2026
Merged

Rollup of 5 pull requests#159498
rust-bors[bot] merged 11 commits into
rust-lang:mainfrom
jhpratt:rollup-vbOXcq6

Conversation

@jhpratt

@jhpratt jhpratt commented Jul 18, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

scottmcm and others added 11 commits July 11, 2026 21:42
It is used once, when marking a `rustc_thread_pool` worker thread as blocked.
`rustc_thread_pool` already has access to the jobserver proxy, so we can move its use from outside of `mark_blocked` to inside of it.
- `floorf16`
- `ceilf16`
- `truncf16,`
- `round_ties_even_f16`
- `roundf16`

- `powif16`
- `sqrtf16`

- `fmaf16`
…=workingjubilee

[cg_ssa] Eliminate the `is_backend_{immediate,scalar_pair,ref}` methods

These methods are just mostly just matches on [`BackendRepr`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_abi/enum.BackendRepr.html) now, which makes then not not very valuable.  Notably, `cg_clif` gets along just fine without them.  In general, it's much nicer to match on `BackendRepr` than to use an `if`-`else` chain of `is_zst`+`is_backend_immediate`+`is_backend_scalar_pair`.

And having them be on `LayoutTypeCodegenMethods` means you need a context to use them, making it more annoying to use them in things like [`OperandValue::is_expected_variant_for_type`](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_codegen_ssa/mir/operand/enum.OperandValue.html#method.is_expected_variant_for_type).

So this just removes them, as well as the `is_llvm_*` and `is_gcc_*` versions.

How I migrated callers:
- `is_backend_ref` becomes a (logical-not-ed) call to a new `.is_ssa_standalone()` method.  (Better name suggestions welcome for this one.  I wanted something to hopefully phrase intent better and positively.)
- `is_backend_immediate` becomes a call to `.backend_repr.is_scalar_or_simd()`.
- `is_backend_scalar_pair` becomes a pattern-match against `BackendRepr::ScalarPair { .. }`.
- some places that used multiples just became a match over `BackendRepr`.

The intent is that this has zero impact on the codegen.  It should be a refactor only.

r? codegen
…, r=tgross35

add a fallback for more `f16` intrinsics

tracking issue: rust-lang#116909

Add several more fallbacks for `f16` intrinsics, so that they will work on platforms without the corresponding libcalls.

related

- rust-lang/rustc_codegen_cranelift#1675
- rust-lang/rustc_codegen_cranelift#1674
- rust-lang#150946
rustc: Avoid passing jobserver proxy around the compiler

It is used once, when marking a `rustc_thread_pool` worker thread as blocked. `rustc_thread_pool` already has access to the jobserver proxy, so we can move its use from outside of `mark_blocked` to inside of it.

(The modified part of `rustc_thread_pool` is a rustc-specific extension, not an original rayon-core API.)

This is a simpler cleanup subset of rust-lang#155997.

r? @nnethercote
…kang

Android platform support: add links to make it easier to figure out the supported API levels

@Joel-Wwalker @maurer are these the right links to put here, or are there better ones?
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Jul 18, 2026
@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jul 18, 2026
@jhpratt

jhpratt commented Jul 18, 2026

Copy link
Copy Markdown
Member Author

@bors r+ rollup=never p=5

@rust-bors

rust-bors Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 1c8bcf8 has been approved by jhpratt

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 18, 2026
@rust-bors

This comment has been minimized.

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jul 18, 2026
@rust-bors

rust-bors Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 36m 50s
Pushing b26c8ef to main...

@rust-bors
rust-bors Bot merged commit b26c8ef into rust-lang:main Jul 18, 2026
14 checks passed
@rustbot rustbot added this to the 1.99.0 milestone Jul 18, 2026
@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#159164 [cg_ssa] Eliminate the `is_backend_{immediate,scalar_pair,r… 43de552671b81b0d55a0f5091ccf3fe0b38c741b (link)
#159175 add a fallback for more f16 intrinsics b20acf3d0dee05138224d1f1e91dc314c3b57111 (link)
#158586 update 'allocation' docs with memory atomicity requirement d7a8bdc9ebae84fad2534051fdfd0c9baaafd5d3 (link)
#159390 rustc: Avoid passing jobserver proxy around the compiler 130822bf7e4d8e6587d37f52e0dd1aa1fd31faeb (link)
#159468 Android platform support: add links to make it easier to fi… 0c7780b5e68943aeeb22b00b5e7a8ae08d3f13c9 (link)

previous master: 637236889f

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@github-actions

Copy link
Copy Markdown
Contributor
What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 6372368 (parent) -> b26c8ef (this PR)

Test differences

Show 234 test diffs

234 doctest diffs were found. These are ignored, as they are noisy.

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard b26c8ef0535b2de24a0af4048370caf449eebabd --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. i686-gnu-nopt-2: 1h 28m -> 2h 21m (+61.2%)
  2. dist-armhf-linux: 1h 4m -> 1h 26m (+34.5%)
  3. armhf-gnu: 1h 33m -> 1h 2m (-33.2%)
  4. dist-i586-gnu-i586-i686-musl: 1h 15m -> 1h 39m (+30.8%)
  5. x86_64-gnu-llvm-21: 1h 15m -> 53m 28s (-28.8%)
  6. dist-x86_64-mingw: 2h -> 2h 35m (+28.4%)
  7. x86_64-gnu-llvm-22-1: 59m 54s -> 1h 16m (+27.2%)
  8. test-various: 1h 54m -> 1h 25m (-25.3%)
  9. dist-aarch64-apple: 2h 17m -> 1h 44m (-24.2%)
  10. x86_64-mingw-1: 2h 53m -> 2h 12m (-24.0%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (b26c8ef): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

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
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.3% [-0.4%, -0.3%] 3
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 1.3%, secondary 1.4%)

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

mean range count
Regressions ❌
(primary)
3.4% [2.4%, 4.4%] 2
Regressions ❌
(secondary)
5.2% [5.2%, 5.2%] 1
Improvements ✅
(primary)
-3.1% [-3.1%, -3.1%] 1
Improvements ✅
(secondary)
-2.3% [-2.3%, -2.3%] 1
All ❌✅ (primary) 1.3% [-3.1%, 4.4%] 3

Cycles

Results (secondary -2.6%)

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

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.6% [-3.3%, -2.1%] 4
All ❌✅ (primary) - - 0

Binary size

Results (primary 0.0%, secondary 0.0%)

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

mean range count
Regressions ❌
(primary)
0.1% [0.0%, 0.1%] 4
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 1
Improvements ✅
(primary)
-0.0% [-0.1%, -0.0%] 4
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [-0.1%, 0.1%] 8

Bootstrap: 488.864s -> 492.122s (0.67%)
Artifact size: 390.05 MiB -> 389.50 MiB (-0.14%)

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

Labels

A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants