Skip to content

Rollup of 14 pull requests - #164355

Merged
rust-bors[bot] merged 37 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-sniJrVT
Oct 15, 2026
Merged

rust-bors[bot] merged 37 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-sniJrVT

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

Noratrieb and others added 30 commits October 4, 2026 17:43
Previously, std-internal symbols (like `__rust_alloc` or `rust_panic`)
were changed to now be mangled via a v0 scheme with the compiler version
hash (`_RNvCs4CIB29Id3dw_7___rustc10rust_panic`) to make it possible to
have multiple staticlibs (as long as they have different version hashes)
in the same program without symbol conflicts. But the personality
function remained unmangled, because LLVM hardcodes that name.

I made a change in LLVM that makes LLVM now check the suffix instead of
an exact match, so we can mangle the personality function with this
scheme.

This removes the last completely unmangled symbol from Rust staticlibs!
(though the mangling is still quite weak, so it's still not as nice as
it would ideally be).

Before, on a trivial staticlib:

```
readelf -s liblib.a | rg GLOBAL | rg -v " UND | HIDDEN " | rg -v ' _ZN'
     8: 0000000000000000     5 FUNC    GLOBAL DEFAULT     3 _RNvCseCSg29WUqSe_7___rustc12___rust_alloc
    10: 0000000000000000     5 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc14___rust_dealloc
    12: 0000000000000000     5 FUNC    GLOBAL DEFAULT     7 _RNvCseCSg29WUqSe_7___rustc14___rust_realloc
    14: 0000000000000000     5 FUNC    GLOBAL DEFAULT     9 _RNvCseCSg29WUqSe_7___rustc19___rust_alloc_zeroed
    16: 0000000000000000     3 FUNC    GLOBAL DEFAULT    11 _RNvCseCSg29WUqSe_7___rustc42___rust_alloc_error_handler_should_panic_v2
    17: 0000000000000000     1 FUNC    GLOBAL DEFAULT    12 _RNvCseCSg29WUqSe_7___rustc35___rust_no_alloc_shim_is_unstable_v2
  3383: 0000000000000000   111 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc10rust_panic
  3387: 0000000000000000    93 FUNC    GLOBAL DEFAULT     7 _RNvCseCSg29WUqSe_7___rustc11___rdl_alloc
  3390: 0000000000000000    10 FUNC    GLOBAL DEFAULT     9 _RNvCseCSg29WUqSe_7___rustc12___rust_abort
  3391: 0000000000000000     6 FUNC    GLOBAL DEFAULT    11 _RNvCseCSg29WUqSe_7___rustc13___rdl_dealloc
  3393: 0000000000000000   167 FUNC    GLOBAL DEFAULT    13 _RNvCseCSg29WUqSe_7___rustc13___rdl_realloc
  3396: 0000000000000000   203 FUNC    GLOBAL DEFAULT    15 _RNvCseCSg29WUqSe_7___rustc17___rust_drop_panic
  3399: 0000000000000000    29 FUNC    GLOBAL DEFAULT    18 _RNvCseCSg29WUqSe_7___rustc17rust_begin_unwind
  3401: 0000000000000000   140 FUNC    GLOBAL DEFAULT    20 _RNvCseCSg29WUqSe_7___rustc18___rdl_alloc_zeroed
  3404: 0000000000000000   203 FUNC    GLOBAL DEFAULT    22 _RNvCseCSg29WUqSe_7___rustc24___rust_foreign_exception
  3405: 0000000000000000    19 FUNC    GLOBAL DEFAULT    25 _RNvCseCSg29WUqSe_7___rustc26___rust_alloc_error_handler
  4410: 0000000000000000  1471 FUNC    GLOBAL DEFAULT   2752 rust_eh_personality
    25: 0000000000000000   161 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc18___rust_start_panic
    32: 0000000000000000    82 FUNC    GLOBAL DEFAULT     8 _RNvCseCSg29WUqSe_7___rustc20___rust_panic_cleanup
   249: 0000000000000000   182 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc25___rdl_alloc_error_handler
     3: 0000000000000000    57 FUNC    GLOBAL DEFAULT     3 _RNvCseCSg29WUqSe_7___rustc17___rust_probestack
```

After:

```
     8: 0000000000000000     5 FUNC    GLOBAL DEFAULT     3 _RNvCs4CIB29Id3dw_7___rustc12___rust_alloc
    10: 0000000000000000     5 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc14___rust_dealloc
    12: 0000000000000000     5 FUNC    GLOBAL DEFAULT     7 _RNvCs4CIB29Id3dw_7___rustc14___rust_realloc
    14: 0000000000000000     5 FUNC    GLOBAL DEFAULT     9 _RNvCs4CIB29Id3dw_7___rustc19___rust_alloc_zeroed
    16: 0000000000000000     3 FUNC    GLOBAL DEFAULT    11 _RNvCs4CIB29Id3dw_7___rustc42___rust_alloc_error_handler_should_panic_v2
    17: 0000000000000000     1 FUNC    GLOBAL DEFAULT    12 _RNvCs4CIB29Id3dw_7___rustc35___rust_no_alloc_shim_is_unstable_v2
   422: 0000000000000000    19 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc26___rust_alloc_error_handler
   429: 0000000000000000   308 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc19rust_eh_personality
   349: 0000000000000000    10 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc12___rust_abort
   164: 0000000000000000    93 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc11___rdl_alloc
   167: 0000000000000000    11 FUNC    GLOBAL DEFAULT     7 _RNvCs4CIB29Id3dw_7___rustc13___rdl_dealloc
   169: 0000000000000000   167 FUNC    GLOBAL DEFAULT     9 _RNvCs4CIB29Id3dw_7___rustc13___rdl_realloc
   172: 0000000000000000   140 FUNC    GLOBAL DEFAULT    11 _RNvCs4CIB29Id3dw_7___rustc18___rdl_alloc_zeroed
   688: 0000000000000000   106 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc10rust_panic
   693: 0000000000000000   207 FUNC    GLOBAL DEFAULT     7 _RNvCs4CIB29Id3dw_7___rustc17___rust_drop_panic
   696: 0000000000000000    29 FUNC    GLOBAL DEFAULT    10 _RNvCs4CIB29Id3dw_7___rustc17rust_begin_unwind
   698: 0000000000000000   207 FUNC    GLOBAL DEFAULT    12 _RNvCs4CIB29Id3dw_7___rustc24___rust_foreign_exception
    26: 0000000000000000   161 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc18___rust_start_panic
    33: 0000000000000000    82 FUNC    GLOBAL DEFAULT     8 _RNvCs4CIB29Id3dw_7___rustc20___rust_panic_cleanup
    88: 0000000000000000   182 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc25___rdl_alloc_error_handler
     3: 0000000000000000    57 FUNC    GLOBAL DEFAULT     3 _RNvCs4CIB29Id3dw_7___rustc17___rust_probestack
```

Co-Authored-By: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Remove the `where Self: Sized` suggestion and the Sized-specific label
suppression so an explicit `Self: Sized` clause is reported like any
other `Self: Trait` bound, and only suggest relaxing the implicit
`Sized` restriction when the failing obligation is that implicit
restriction rather than an explicit where clause of the item.

Also rename the regression tests and add a case for an implicit
`Sized` failure on an associated item with other explicit where
clauses.
This LTO buffer appears to be an implementation detail of the LLVM backend, as
it is not touched by other in-tree backends.

Using OnceLock makes it possible to set the buffer through a shared reference.
This will be necessary when enforcing scoped access to the other contents of
ModuleLlvm.
Codegen code that needs any of `llcx`/`llmod`/`tm` must now access them through
a callback, to ensure that the `'ll` lifetimes are coherent and non-static, and
don't accidentally escape.
…name

A previous PR changed `symbol_edit` to store the undecorated Arm64EC symbol in the set of renamed symbols.
While the lookup for symbols in that set did use `undecorate_coff_symbol`, it is possible that we had a untyped reference to a symbol (for example `_RNvCsVsdZgbfeYr_7___rustc12___rust_alloc` or `_RINvNtCs1dnTqovEYZ_3std9panicking11begin_panicReEB4_`), which does not get undecorated hence the lookup fails.

The fix is to store the original, decorated name in the set, which also saves having to undecorate when looking up the symbol.
This commit migrates the `test-various` job in CI from testing the
`wasm32-wasip1` target to testing the `wasm32-wasip3` target. While
doing so this additionally runs tests with `-Cpanic=unwind` instead of
the historical `-Cpanic=abort` to expand the scope of tests slightly and
run `alloc` tests, for example. The purpose of this change is to start
migrating towards a wasm testing target which has a more fully-featured
`std`, e.g. panics & threads, to run more tests in CI and make it less
of a too-different target. This change was originally proposed at
rust-lang/compiler-team/1039 which contains some more background details
as well.

The major notable change in test coverage here is running tests with
`-Cpanic=unwind`. WebAssembly targets by default still use
`-Cpanic=abort` and this means that large swaths of the test suite do
not execute because they require panicking/unwinding in one way or
another. CI here is configuring wasm targets to specifically enable
unwinding, but only for the testing build. To achieve this a new
`bootstrap.toml` option is added which enables configuring the default
`panic_strategy` for wasm targets -- an option only intended to be used
in testing.

Most of this change is adjusting tests for this new testing
infrastructure, some old Wasmtime-related TODOs are cleaned up as well
with an updated build. Notably the `only-wasm32-wasip1` directive for
compiletest is removed and all preexisting tests are migrated to run for
any wasm target. The `run-make` suite in particular is updated to handle
when the wasm target outputs components and the various ABI details of
the wasip3 target.

This change notably does not yet start to run `std`'s test suite for the
`wasm32-wasip3` target. Too much of that test suite requires threads to
be useful to run at this time, and as such running those tests is
delayed until a later time when cooperative threading is enabled.

Closes 163451
…saethlin

Test panics and wasm32-wasip3 in CI, not wasip1

This commit migrates the `test-various` job in CI from testing the `wasm32-wasip1` target to testing the `wasm32-wasip3` target. While doing so this additionally runs tests with `-Cpanic=unwind` instead of the historical `-Cpanic=abort` to expand the scope of tests slightly and run `alloc` tests, for example. The purpose of this change is to start migrating towards a wasm testing target which has a more fully-featured `std`, e.g. panics & threads, to run more tests in CI and make it less of a too-different target. This change was originally proposed at rust-lang/compiler-team#1039 which contains some more background details as well.

The major notable change in test coverage here is running tests with `-Cpanic=unwind`. WebAssembly targets by default still use `-Cpanic=abort` and this means that large swaths of the test suite do not execute because they require panicking/unwinding in one way or another. CI here is configuring wasm targets to specifically enable unwinding, but only for the testing build. To achieve this a new `bootstrap.toml` option is added which enables configuring the default `panic_strategy` for wasm targets -- an option only intended to be used in testing.

Most of this change is adjusting tests for this new testing infrastructure, some old Wasmtime-related TODOs are cleaned up as well with an updated build. Notably the `only-wasm32-wasip1` directive for compiletest is removed and all preexisting tests are migrated to run for any wasm target. The `run-make` suite in particular is updated to handle when the wasm target outputs components and the various ABI details of the wasip3 target.

This change notably does not yet start to run `std`'s test suite for the `wasm32-wasip3` target. Too much of that test suite requires threads to be useful to run at this time, and as such running those tests is delayed until a later time when cooperative threading is enabled.
…peria

Abby: use a smallvec for `And`/`Or` constraints

r? khyperia

Having option everywhere is kinda annoying and makes logic more involved and distracting 😅 Need to perf this and blocked on rust-lang#164313
…ty, r=petrochenkov

Mangle personality symbol

Previously, std-internal symbols (like `__rust_alloc` or `rust_panic`) were changed to now be mangled via a v0 scheme with the compiler version hash (`_RNvCs4CIB29Id3dw_7___rustc10rust_panic`) to make it possible to have multiple staticlibs (as long as they have different version hashes) in the same program without symbol conflicts. But the personality function remained unmangled, because LLVM hardcodes that name.

I made a change in LLVM llvm/llvm-project#166095 that makes LLVM now check the suffix instead of an exact match, so we can mangle the personality function with this scheme.

This removes the last completely unmangled symbol from Rust staticlibs! (though the mangling is still quite weak, so it's still not as nice as it would ideally be).

Before, on a trivial staticlib:

```
readelf -s liblib.a | rg GLOBAL | rg -v " UND | HIDDEN " | rg -v ' _ZN'
     8: 0000000000000000     5 FUNC    GLOBAL DEFAULT     3 _RNvCseCSg29WUqSe_7___rustc12___rust_alloc
    10: 0000000000000000     5 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc14___rust_dealloc
    12: 0000000000000000     5 FUNC    GLOBAL DEFAULT     7 _RNvCseCSg29WUqSe_7___rustc14___rust_realloc
    14: 0000000000000000     5 FUNC    GLOBAL DEFAULT     9 _RNvCseCSg29WUqSe_7___rustc19___rust_alloc_zeroed
    16: 0000000000000000     3 FUNC    GLOBAL DEFAULT    11 _RNvCseCSg29WUqSe_7___rustc42___rust_alloc_error_handler_should_panic_v2
    17: 0000000000000000     1 FUNC    GLOBAL DEFAULT    12 _RNvCseCSg29WUqSe_7___rustc35___rust_no_alloc_shim_is_unstable_v2
  3383: 0000000000000000   111 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc10rust_panic
  3387: 0000000000000000    93 FUNC    GLOBAL DEFAULT     7 _RNvCseCSg29WUqSe_7___rustc11___rdl_alloc
  3390: 0000000000000000    10 FUNC    GLOBAL DEFAULT     9 _RNvCseCSg29WUqSe_7___rustc12___rust_abort
  3391: 0000000000000000     6 FUNC    GLOBAL DEFAULT    11 _RNvCseCSg29WUqSe_7___rustc13___rdl_dealloc
  3393: 0000000000000000   167 FUNC    GLOBAL DEFAULT    13 _RNvCseCSg29WUqSe_7___rustc13___rdl_realloc
  3396: 0000000000000000   203 FUNC    GLOBAL DEFAULT    15 _RNvCseCSg29WUqSe_7___rustc17___rust_drop_panic
  3399: 0000000000000000    29 FUNC    GLOBAL DEFAULT    18 _RNvCseCSg29WUqSe_7___rustc17rust_begin_unwind
  3401: 0000000000000000   140 FUNC    GLOBAL DEFAULT    20 _RNvCseCSg29WUqSe_7___rustc18___rdl_alloc_zeroed
  3404: 0000000000000000   203 FUNC    GLOBAL DEFAULT    22 _RNvCseCSg29WUqSe_7___rustc24___rust_foreign_exception
  3405: 0000000000000000    19 FUNC    GLOBAL DEFAULT    25 _RNvCseCSg29WUqSe_7___rustc26___rust_alloc_error_handler
  4410: 0000000000000000  1471 FUNC    GLOBAL DEFAULT   2752 rust_eh_personality
    25: 0000000000000000   161 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc18___rust_start_panic
    32: 0000000000000000    82 FUNC    GLOBAL DEFAULT     8 _RNvCseCSg29WUqSe_7___rustc20___rust_panic_cleanup
   249: 0000000000000000   182 FUNC    GLOBAL DEFAULT     5 _RNvCseCSg29WUqSe_7___rustc25___rdl_alloc_error_handler
     3: 0000000000000000    57 FUNC    GLOBAL DEFAULT     3 _RNvCseCSg29WUqSe_7___rustc17___rust_probestack
```

After:

```
     8: 0000000000000000     5 FUNC    GLOBAL DEFAULT     3 _RNvCs4CIB29Id3dw_7___rustc12___rust_alloc
    10: 0000000000000000     5 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc14___rust_dealloc
    12: 0000000000000000     5 FUNC    GLOBAL DEFAULT     7 _RNvCs4CIB29Id3dw_7___rustc14___rust_realloc
    14: 0000000000000000     5 FUNC    GLOBAL DEFAULT     9 _RNvCs4CIB29Id3dw_7___rustc19___rust_alloc_zeroed
    16: 0000000000000000     3 FUNC    GLOBAL DEFAULT    11 _RNvCs4CIB29Id3dw_7___rustc42___rust_alloc_error_handler_should_panic_v2
    17: 0000000000000000     1 FUNC    GLOBAL DEFAULT    12 _RNvCs4CIB29Id3dw_7___rustc35___rust_no_alloc_shim_is_unstable_v2
   422: 0000000000000000    19 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc26___rust_alloc_error_handler
   429: 0000000000000000   308 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc19rust_eh_personality
   349: 0000000000000000    10 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc12___rust_abort
   164: 0000000000000000    93 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc11___rdl_alloc
   167: 0000000000000000    11 FUNC    GLOBAL DEFAULT     7 _RNvCs4CIB29Id3dw_7___rustc13___rdl_dealloc
   169: 0000000000000000   167 FUNC    GLOBAL DEFAULT     9 _RNvCs4CIB29Id3dw_7___rustc13___rdl_realloc
   172: 0000000000000000   140 FUNC    GLOBAL DEFAULT    11 _RNvCs4CIB29Id3dw_7___rustc18___rdl_alloc_zeroed
   688: 0000000000000000   106 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc10rust_panic
   693: 0000000000000000   207 FUNC    GLOBAL DEFAULT     7 _RNvCs4CIB29Id3dw_7___rustc17___rust_drop_panic
   696: 0000000000000000    29 FUNC    GLOBAL DEFAULT    10 _RNvCs4CIB29Id3dw_7___rustc17rust_begin_unwind
   698: 0000000000000000   207 FUNC    GLOBAL DEFAULT    12 _RNvCs4CIB29Id3dw_7___rustc24___rust_foreign_exception
    26: 0000000000000000   161 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc18___rust_start_panic
    33: 0000000000000000    82 FUNC    GLOBAL DEFAULT     8 _RNvCs4CIB29Id3dw_7___rustc20___rust_panic_cleanup
    88: 0000000000000000   182 FUNC    GLOBAL DEFAULT     5 _RNvCs4CIB29Id3dw_7___rustc25___rdl_alloc_error_handler
     3: 0000000000000000    57 FUNC    GLOBAL DEFAULT     3 _RNvCs4CIB29Id3dw_7___rustc17___rust_probestack
```

r? bjorn3
…r=petrochenkov

Add aarch64-unknown-qtee as a tier 3 target

This PR adds support for [Qualcomm's Trusted Execution Environment - QTEE](https://docs.qualcomm.com/doc/80-70018-11/topic/qualcomm-trusted-execution-environment.html) as a Tier 3 target.

MCP: rust-lang/compiler-team#1038

## Target Tier Policy Acknowledgements

> A tier 3 target must have a designated developer or developers (the "target maintainers") on record to be CCed when issues arise regarding the target. (The mechanism to track and CC such developers may evolve over time.)

* Antonio Martorana (@atmartorana) - amartora@qti.qualcomm.com
* Gaurav Kashyap - gaurkash@qti.qualcomm.com
* Neal Haas - nhaas@qti.qualcomm.com
* As a fallback rustzone@qti.qualcomm.com can be contacted

> Targets must use naming consistent with any existing targets; for instance, a target for the same CPU or OS as an existing Rust target should use the same name for that CPU or OS. Targets should normally use the same names and naming conventions as used elsewhere in the broader ecosystem beyond Rust (such as in other toolchains), unless they have a very good reason to diverge. Changing the name of a target can be highly disruptive, especially once the target reaches a higher tier, so getting the name right is important even for a tier 3 target.

The new target, `aarch64-unknown-qtee` follows the existing naming convention for similar targets.

> Target names should not introduce undue confusion or ambiguity unless absolutely necessary to maintain ecosystem compatibility. For example, if the name of the target makes people extremely likely to form incorrect beliefs about what it targets, the name should be changed or augmented to disambiguate it.

👍

> Tier 3 targets may have unusual requirements to build or use, but must not create legal issues or impose onerous legal terms for the Rust project or for Rust developers or users.

There are no known legal issues or license incompatibilities.

> Neither this policy nor any decisions made regarding targets shall create any binding agreement or estoppel by any party. If any member of an approving Rust team serves as one of the maintainers of a target, or has any legal or employment requirement (explicit or implicit) that might affect their decisions regarding a target, they must recuse themselves from any approval decisions regarding the target's tier status, though they may otherwise participate in discussions.

👍

> Tier 3 targets should attempt to implement as much of the standard libraries as possible and appropriate (core for most targets, alloc for targets that can support dynamic memory allocation, std for targets with an operating system or equivalent layer of system-provided functionality), but may leave some code unimplemented (either unavailable or stubbed out as appropriate), whether because the target makes it impossible to implement or challenging to implement. The authors of pull requests are not obligated to avoid calling any portions of the standard library on the basis of a tier 3 target not implementing those portions.

This PR only adds the target. `alloc` and `std` support is being worked on and will be added in an upcoming PR.

To expand on the above: QTEE does support dynamic memory allocation. `std` features where QTEE will provide support for: `backtrace`, `fs`, `thread`, and `time`. QTEE does not support `args`, `io`, `net`, `os`, `pipe`, `process`, and `env`. Remaining `std` features not mentioned above will either be marked as unsupported or implemented.

> The target must provide documentation for the Rust community explaining how to build for the target, using cross-compilation if possible. If the target supports running binaries, or running tests (even if they do not pass), the documentation must explain how to run such binaries or tests for the target, using emulation if possible or dedicated hardware if necessary.

👍

> Tier 3 targets must not impose burden on the authors of pull requests, or other developers in the community, to maintain the target. In particular, do not post comments (automated or manual) on a PR that derail or suggest a block on the PR based on a tier 3 target. Do not send automated messages or notifications (via any medium, including via @) to a PR author or others involved with a PR regarding a tier 3 target, unless they have opted into such messages.

👍

> Patches adding or updating tier 3 targets must not break any existing tier 2 or tier 1 target, and must not knowingly break another tier 3 target without approval of either the compiler team or the maintainers of the other tier 3 target.

👍

> Tier 3 targets must be able to produce assembly using at least one of rustc’s supported backends from any host target. (Having support in a fork of the backend is not sufficient, it must be upstream.)

 Building for `aarch64-unknown-qtee` uses upstream LLVM as the backend 👍

r? compiler
…gs-ice, r=nikomatsakis

Fix ICE when move expressions reference out-of-scope local bindings

I have added a diagnostic for rejecting out-of-scope local bindings in move expressions.

`tests/ui/move-expr/closure-local-bindings.rs` and `tests/ui/move-expr/move-initializer-local-bindings.rs` are generated by LLM.

r? @nikomatsakis
[coff] Symbol renaming stored the original name, not the undecorated name

PR rust-lang#163462 changed `symbol_edit` to store the undecorated Arm64EC symbol in the set of renamed symbols. While the lookup for symbols in that set did use `undecorate_coff_symbol`, it is possible that we had a untyped reference to a symbol (for example `_RNvCsVsdZgbfeYr_7___rustc12___rust_alloc` or `_RINvNtCs1dnTqovEYZ_3std9panicking11begin_panicReEB4_`), which does not get undecorated hence the lookup fails.

The fix is to store the original, decorated name in the set, which also saves having to undecorate when looking up the symbol.

LLM disclosure: Used Copilot to root cause the original "unresolved external symbol" issue and to automate testing to validate that 1) Arm64EC was actually fixed by this change and 2) x86 was not regressed. Fix was written by hand.
…xdexh,ShoyuVanilla

Improve diagnostics for non-well-formed associated items

Fixes rust-lang#162368.

With the new solver, this ended up as a projection mismatch instead of reporting the `Sized` requirement from the associated type.

I changed the diagnostic fallback to also check the associated item's own clauses, so it can recover the `Self: Sized` obligation and report E0277 instead. This works the same way for any other `Self: Trait` bound on the item, not just `Sized`.

In this case, the diagnostic now points to the impl type parameter instead of `i32`, and keeps the note for the associated type bound. The `Sized`-specific special casing from the first version is gone after review feedback; in particular, the implicit-`Sized` relaxation suggestion is now skipped when the failing obligation comes from an explicit where clause of the item, where relaxing the implicit restriction wouldn't help.

I also added regression tests for the original case, an existing where-clause, the normal implicit `Sized` case, and a non-impl projection use site.
@rustbot rustbot added 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. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Oct 15, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5 force

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,test-x86_64-gnu-aux,test-x86_64-msvc-1,test-aarch64-apple-1,test-aarch64-apple-2,test-x86_64-mingw-1,test-i686-msvc,test-armhf-gnu,test-x86_64-gnu-llvm-22-3

@rust-bors

rust-bors Bot commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 494c961 has been approved by JonathanBrouwer

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 Oct 15, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Oct 15, 2026
Rollup of 14 pull requests


try-job: dist-various-1
try-job: test-various
try-job: test-x86_64-gnu-aux
try-job: test-x86_64-msvc-1
try-job: test-aarch64-apple-1
try-job: test-aarch64-apple-2
try-job: test-x86_64-mingw-1
try-job: test-i686-msvc
try-job: test-armhf-gnu
try-job: test-x86_64-gnu-llvm-22-3
@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 Oct 15, 2026
@rust-bors

rust-bors Bot commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 1m 57s
Pushing 3b13d3f to main...

@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 8a9dd7a (parent) -> 3b13d3f (this PR)

Test differences

Show 124 test diffs

Stage 0

  • spec::tests::aarch64_unknown_qtee: [missing] -> pass (J3)

Stage 1

  • [ui (polonius)] tests/ui/const-generics/function_arg_const_generics/const-param-variadic.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/internal/internal-unstable-asm-experimental-arch.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J0)
  • [ui (polonius)] tests/ui/move-expr/closure-local-bindings.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/move-expr/closure-local-uninitialized.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/move-expr/move-initializer-local-bindings.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/move-expr/name-resolution.rs: ignore (ignored always ((Tracking Issue for move expressions (move(expr)) #155050): currently ICEs instead of reporting a name-resolution error)) -> pass (J0)
  • [ui (polonius)] tests/ui/target-feature/implicit-features-cli.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J0)
  • [ui (polonius)] tests/ui/target-feature/implicit-features.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J0)
  • [ui (polonius)] tests/ui/target-feature/wasm-disable-simd.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J0)
  • [ui (polonius)] tests/ui/target-feature/wasm-relaxed-simd.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J0)
  • [ui (polonius)] tests/ui/traits/next-solver/assoc-item-own-bound-diagnostics.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/traits/next-solver/assoc-item-own-bound.rs#current: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/traits/next-solver/assoc-item-own-bound.rs#next: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/function_arg_const_generics/const-param-variadic.rs: [missing] -> pass (J2)
  • [ui] tests/ui/internal/internal-unstable-asm-experimental-arch.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J2)
  • [ui] tests/ui/move-expr/closure-local-bindings.rs: [missing] -> pass (J2)
  • [ui] tests/ui/move-expr/closure-local-uninitialized.rs: [missing] -> pass (J2)
  • [ui] tests/ui/move-expr/move-initializer-local-bindings.rs: [missing] -> pass (J2)
  • [ui] tests/ui/move-expr/name-resolution.rs: ignore (ignored always ((Tracking Issue for move expressions (move(expr)) #155050): currently ICEs instead of reporting a name-resolution error)) -> pass (J2)
  • [ui] tests/ui/target-feature/implicit-features-cli.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J2)
  • [ui] tests/ui/target-feature/implicit-features.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J2)
  • [ui] tests/ui/target-feature/wasm-disable-simd.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J2)
  • [ui] tests/ui/target-feature/wasm-relaxed-simd.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J2)
  • [ui] tests/ui/traits/next-solver/assoc-item-own-bound-diagnostics.rs: [missing] -> pass (J2)
  • [ui] tests/ui/traits/next-solver/assoc-item-own-bound.rs#current: [missing] -> pass (J2)
  • [ui] tests/ui/traits/next-solver/assoc-item-own-bound.rs#next: [missing] -> pass (J2)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#aarch64_unknown_qtee: [missing] -> pass (J3)
  • [run-make] tests/run-make/wasm-custom-section: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J3)
  • [run-make] tests/run-make/wasm-custom-sections-opt: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J3)
  • [run-make] tests/run-make/wasm-export-all-symbols: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J3)
  • [run-make] tests/run-make/wasm-import-module: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J3)
  • [run-make] tests/run-make/wasm-panic-small: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J3)
  • [run-make] tests/run-make/wasm-spurious-import: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J3)
  • [run-make] tests/run-make/wasm-stringify-ints-small: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J3)
  • [run-make] tests/run-make/wasm-symbols-different-module: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J3)
  • [run-make] tests/run-make/wasm-symbols-not-exported: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J3)
  • [run-make] tests/run-make/wasm-symbols-not-imported: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J3)
  • [rustdoc-json] tests/rustdoc-json/remap-path-prefix/debuginfo.rs: [missing] -> pass (J3)
  • [rustdoc-json] tests/rustdoc-json/remap-path-prefix/diag.rs: [missing] -> pass (J3)
  • [rustdoc-json] tests/rustdoc-json/remap-path-prefix/doc.rs: [missing] -> pass (J3)
  • [rustdoc-json] tests/rustdoc-json/remap-path-prefix/object.rs: [missing] -> pass (J3)
  • [rustdoc-json] tests/rustdoc-json/remap-path-prefix/remap-path-prefix.rs: [missing] -> pass (J3)
  • spec::tests::aarch64_unknown_qtee: [missing] -> pass (J8)

Stage 2

  • [run-make] tests/run-make/wasm-custom-section: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J1)
  • [run-make] tests/run-make/wasm-custom-sections-opt: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J1)
  • [run-make] tests/run-make/wasm-export-all-symbols: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J1)
  • [run-make] tests/run-make/wasm-import-module: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J1)
  • [run-make] tests/run-make/wasm-panic-small: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J1)
  • [run-make] tests/run-make/wasm-spurious-import: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J1)
  • [run-make] tests/run-make/wasm-stringify-ints-small: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J1)
  • [run-make] tests/run-make/wasm-symbols-different-module: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J1)
  • [run-make] tests/run-make/wasm-symbols-not-exported: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J1)
  • [run-make] tests/run-make/wasm-symbols-not-imported: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J1)
  • [ui] tests/ui/const-generics/function_arg_const_generics/const-param-variadic.rs: [missing] -> pass (J4)
  • [ui] tests/ui/internal/internal-unstable-asm-experimental-arch.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J4)
  • [ui] tests/ui/move-expr/closure-local-bindings.rs: [missing] -> pass (J4)
  • [ui] tests/ui/move-expr/closure-local-uninitialized.rs: [missing] -> pass (J4)
  • [ui] tests/ui/move-expr/move-initializer-local-bindings.rs: [missing] -> pass (J4)
  • [ui] tests/ui/move-expr/name-resolution.rs: ignore (ignored always ((Tracking Issue for move expressions (move(expr)) #155050): currently ICEs instead of reporting a name-resolution error)) -> pass (J4)
  • [ui] tests/ui/target-feature/implicit-features-cli.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J4)
  • [ui] tests/ui/target-feature/implicit-features.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J4)
  • [ui] tests/ui/target-feature/wasm-disable-simd.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J4)
  • [ui] tests/ui/target-feature/wasm-relaxed-simd.rs: ignore (only executed when the target is wasm32-wasip1) -> ignore (only executed when the architecture is wasm32) (J4)
  • [ui] tests/ui/traits/next-solver/assoc-item-own-bound-diagnostics.rs: [missing] -> pass (J4)
  • [ui] tests/ui/traits/next-solver/assoc-item-own-bound.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/traits/next-solver/assoc-item-own-bound.rs#next: [missing] -> pass (J4)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#aarch64_unknown_qtee: [missing] -> pass (J5)
  • [rustdoc-json] tests/rustdoc-json/remap-path-prefix/doc.rs: [missing] -> pass (J6)
  • [rustdoc-json] tests/rustdoc-json/remap-path-prefix/remap-path-prefix.rs: [missing] -> pass (J6)
  • [rustdoc-json] tests/rustdoc-json/remap-path-prefix/debuginfo.rs: [missing] -> pass (J7)
  • [rustdoc-json] tests/rustdoc-json/remap-path-prefix/diag.rs: [missing] -> pass (J7)
  • [rustdoc-json] tests/rustdoc-json/remap-path-prefix/object.rs: [missing] -> pass (J7)
  • io::cursor::vec_seek_and_write_past_usize_max: [missing] -> pass (J9)
  • [rustdoc-json] tests/rustdoc-json/remap-path-prefix/doc.rs: [missing] -> ignore (ignored when the operating system is windows) (J10)
  • [rustdoc-json] tests/rustdoc-json/remap-path-prefix/remap-path-prefix.rs: [missing] -> ignore (ignored when the operating system is windows) (J10)

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

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 3b13d3fd58d21a6ffd3aa6dec7ae6b299405acd1 --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. test-x86_64-gnu-gcc-core-tests: 8m 31s -> 18m 12s (+113.7%)
  2. test-pr-check-1: 20m 10s -> 40m 6s (+98.8%)
  3. test-x86_64-msvc-2: 1h 35m -> 2h 41m (+68.9%)
  4. test-x86_64-gnu-aux: 1h 36m -> 2h 38m (+64.8%)
  5. test-x86_64-gnu-stdlib-semver-check: 11m 29s -> 18m 13s (+58.6%)
  6. optional-test-x86_64-gnu-autodiff: 39m 34s -> 1h (+52.2%)
  7. dist-powerpc64le-linux-gnu: 1h 7m -> 1h 38m (+47.4%)
  8. dist-ohos-x86_64: 57m 43s -> 1h 23m (+45.2%)
  9. test-i686-gnu-nopt-2: 1h 21m -> 1h 53m (+39.1%)
  10. test-x86_64-gnu-nopt: 2h 35m -> 1h 37m (-37.7%)
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-bors

rust-bors Bot commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: d7bc29f (d7bc29fb7f8df9827cbd5f2a90de9462e7970d3e)
Base parent: 8a9dd7a (8a9dd7abdf013ec10cfeaaa3685feba18ef1c90c)

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (3b13d3f): comparison URL.

Overall result: ❌ regressions - 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.3% [0.1%, 0.8%] 15
Regressions ❌
(secondary)
0.4% [0.2%, 0.9%] 7
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.3% [0.1%, 0.8%] 15

Max RSS (memory usage)

Results (primary -1.5%, secondary -0.9%)

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

mean range count
Regressions ❌
(primary)
1.0% [1.0%, 1.0%] 1
Regressions ❌
(secondary)
3.3% [3.3%, 3.3%] 1
Improvements ✅
(primary)
-2.8% [-4.5%, -1.0%] 2
Improvements ✅
(secondary)
-3.0% [-3.0%, -2.9%] 2
All ❌✅ (primary) -1.5% [-4.5%, 1.0%] 3

Cycles

Results (primary 2.0%, secondary -0.7%)

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

mean range count
Regressions ❌
(primary)
2.0% [1.4%, 2.5%] 2
Regressions ❌
(secondary)
2.9% [1.7%, 4.4%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-11.3% [-11.3%, -11.3%] 1
All ❌✅ (primary) 2.0% [1.4%, 2.5%] 2

Binary size

Results (primary 0.4%, secondary 0.2%)

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

mean range count
Regressions ❌
(primary)
0.4% [0.1%, 0.4%] 4
Regressions ❌
(secondary)
0.2% [0.0%, 0.6%] 11
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.4% [0.1%, 0.4%] 4

Bootstrap: 490.736s -> 492.307s (0.32%)
Artifact size: 407.05 MiB -> 407.14 MiB (0.02%)

@rustbot rustbot added the perf-regression Performance regression. label Oct 15, 2026
@rust-bors

rust-bors Bot commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#163132 Test panics and wasm32-wasip3 in CI, not wasip1 5f68626245595b5c886400745389fee745d92383
(link)
#164314 Abby: use a smallvec for And/Or constraints b54a26983f7c569d772854bc3d7959f78e54721e
(link)
#148413 Mangle personality symbol 7cb32fd90a28f8d06e0a55976798e5584de773a7
(link)
#163688 Add aarch64-unknown-qtee as a tier 3 target ce6240587606ed32436143512004ad3cf9cb22a3
(link)
#164076 Fix ICE when move expressions reference out-of-scope local … 3c1804f118dfac256591c3652e2773d3e2415856
(link)
#164327 [coff] Symbol renaming stored the original name, not the un… 71ccfd878fe1aa00305330294e8d4310178352cc
(link)
#162432 Improve diagnostics for non-well-formed associated items a4af3b4ba22b1d74333e0a93ef9766b2282196d6
(link)
#164138 cg_llvm: Use a callback to enforce scoped lifetimes in Modu… 902ee3fc5d3c58ff91d5304a3fbbf675f2ffacb0
(link)
#164210 incomplete -> unstable for delegation feature cbc814de3440eda443332cf5cdce2d65e6402e34
(link)
#164225 Point at assoc item for trait that needs to be implemented 5238fe608cecf143f686376a5512643a2c3b7342
(link)
#164278 Output remapped paths in rustdoc JSON with the `documentati… 0189fb44a3fde041998da63eb4fc457989d76204
(link)
#164308 format abby dsl errors better 4d32f229c038ed60a80992d3c0b84673c3968060
(link)
#164335 expand and document tool attribute shadowing test fb8bb353ce1af61ede8a6a85fba2e7349d3b7ffd
(link)
#164342 Use regular type parsing for argument-position const parame… 71382d47c84483501621404c441cbc3a3b4aeb0e
(link)

parent commit: 8a9dd7abdf

In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: @rust-timer triage $SHA $SHA $SHA..., or run @rust-timer triage all to benchmark all rollup members.

@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@rust-timer triage all

@rust-timer

rust-timer commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator
Running triage with 19 benchmarks

Triage only executes the benchmarks on rollup members, that were changed significantly on the rollup.
For this rollup, these benchmarks are:

  • bitmaps-3.2.1-new-solver
  • cargo-0.87.1
  • cranelift-codegen-0.119.0
  • derive
  • eza-0.21.2
  • image-0.25.6
  • include-blob
  • libc-0.2.172
  • many-assoc-items
  • match-stress
  • regex-automata-0.4.8
  • ripgrep-14.1.1
  • ripgrep-14.1.1-nll
  • ripgrep-14.1.1-tiny
  • serde-1.0.219
  • stm32f4-0.15.1
  • syn-2.0.101
  • tokio-1.53.1
  • typenum-1.18.0

#163132 5f68626 Test panics and wasm32-wasip3 in CI, not wasip1

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.2% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -4.3%)

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)
-4.3% [-4.3%, -4.3%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -4.3% [-4.3%, -4.3%] 1

Cycles

Results (primary 3.0%, secondary -3.8%)

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

mean range count
Regressions ❌
(primary)
3.0% [3.0%, 3.0%] 1
Regressions ❌
(secondary)
4.3% [4.3%, 4.3%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-11.8% [-11.8%, -11.8%] 1
All ❌✅ (primary) 3.0% [3.0%, 3.0%] 1

Binary size

This perf run didn't have relevant results for this metric.


#164314 b54a269 Abby: use a smallvec for And/Or constraints

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

Max RSS (memory usage)

Results (primary -4.4%)

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)
-4.4% [-4.4%, -4.4%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -4.4% [-4.4%, -4.4%] 1

Cycles

Results (secondary 4.3%)

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)
4.3% [4.3%, 4.3%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.


#148413 7cb32fd Mangle personality symbol

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.2% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -4.2%)

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)
-4.2% [-4.2%, -4.2%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -4.2% [-4.2%, -4.2%] 1

Cycles

Results (secondary -3.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)
4.5% [4.5%, 4.5%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-11.8% [-11.8%, -11.8%] 1
All ❌✅ (primary) - - 0

Binary size

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

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.1% [0.1%, 0.1%] 1
Improvements ✅
(primary)
-0.2% [-0.2%, -0.1%] 28
Improvements ✅
(secondary)
-0.2% [-0.2%, -0.1%] 6
All ❌✅ (primary) -0.2% [-0.2%, -0.1%] 28

#163688 ce62405 Add aarch64-unknown-qtee as a tier 3 target

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.2% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

Results (primary 2.0%, secondary -3.9%)

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

mean range count
Regressions ❌
(primary)
2.0% [2.0%, 2.0%] 1
Regressions ❌
(secondary)
3.6% [3.6%, 3.6%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-11.5% [-11.5%, -11.5%] 1
All ❌✅ (primary) 2.0% [2.0%, 2.0%] 1

Binary size

This perf run didn't have relevant results for this metric.


#164076 3c1804f Fix ICE when move expressions reference out-of-scope local bindings

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.2% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -4.4%, secondary -3.3%)

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)
-4.4% [-4.4%, -4.4%] 1
Improvements ✅
(secondary)
-3.3% [-3.3%, -3.3%] 1
All ❌✅ (primary) -4.4% [-4.4%, -4.4%] 1

Cycles

Results (secondary -3.7%)

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)
4.4% [4.4%, 4.4%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-11.8% [-11.8%, -11.8%] 1
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.


#164327 71ccfd8 [coff] Symbol renaming stored the original name, not the undecorated name

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.2% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

Results (secondary -3.8%)

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)
4.1% [4.1%, 4.1%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-11.8% [-11.8%, -11.8%] 1
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.


#162432 a4af3b4 Improve diagnostics for non-well-formed associated items

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.2% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -4.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)
-4.6% [-4.6%, -4.6%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -4.6% [-4.6%, -4.6%] 1

Cycles

Results (primary 2.7%, secondary -3.6%)

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

mean range count
Regressions ❌
(primary)
2.7% [2.7%, 2.7%] 1
Regressions ❌
(secondary)
4.4% [4.4%, 4.4%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-11.5% [-11.5%, -11.5%] 1
All ❌✅ (primary) 2.7% [2.7%, 2.7%] 1

Binary size

This perf run didn't have relevant results for this metric.


#164138 902ee3f cg_llvm: Use a callback to enforce scoped lifetimes in ModuleLlvm

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.2% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -1.7%)

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

mean range count
Regressions ❌
(primary)
0.9% [0.9%, 0.9%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-4.3% [-4.3%, -4.3%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -1.7% [-4.3%, 0.9%] 2

Cycles

Results (secondary -3.2%)

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)
5.5% [5.5%, 5.5%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-12.0% [-12.0%, -12.0%] 1
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.


#164210 cbc814d incomplete -> unstable for delegation feature

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.2% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -2.9%)

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)
-2.9% [-4.2%, -1.7%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.9% [-4.2%, -1.7%] 2

Cycles

Results (secondary -3.2%)

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)
4.3% [4.3%, 4.3%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-6.9% [-11.6%, -2.2%] 2
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.


#164225 5238fe6 Point at assoc item for trait that needs to be implemented

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.2% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -5.5%, secondary -3.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)
-5.5% [-6.8%, -4.3%] 2
Improvements ✅
(secondary)
-3.6% [-3.6%, -3.6%] 1
All ❌✅ (primary) -5.5% [-6.8%, -4.3%] 2

Cycles

Results (secondary -3.3%)

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)
5.1% [5.1%, 5.1%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-7.6% [-11.9%, -3.2%] 2
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.


#164278 0189fb4 Output remapped paths in rustdoc JSON with the documentation scope

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.4% [0.2%, 0.8%] 10
Regressions ❌
(secondary)
0.4% [0.1%, 0.8%] 6
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.4% [0.2%, 0.8%] 10

Max RSS (memory usage)

Results (primary -4.1%)

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)
-4.1% [-4.1%, -4.1%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -4.1% [-4.1%, -4.1%] 1

Cycles

Results (secondary -1.7%)

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)
3.7% [2.8%, 4.7%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-7.1% [-11.8%, -2.5%] 2
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.


#164308 4d32f22 format abby dsl errors better

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.2% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -4.4%)

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)
-4.4% [-4.4%, -4.4%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -4.4% [-4.4%, -4.4%] 1

Cycles

Results (secondary -3.8%)

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)
4.2% [4.2%, 4.2%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-11.9% [-11.9%, -11.9%] 1
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.


#164335 fb8bb35 expand and document tool attribute shadowing test

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.2% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -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)
-2.6% [-4.2%, -0.9%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.6% [-4.2%, -0.9%] 2

Cycles

Results (primary 2.2%, secondary -3.4%)

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

mean range count
Regressions ❌
(primary)
2.2% [1.8%, 2.5%] 2
Regressions ❌
(secondary)
4.5% [4.5%, 4.5%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-7.4% [-11.6%, -3.2%] 2
All ❌✅ (primary) 2.2% [1.8%, 2.5%] 2

Binary size

This perf run didn't have relevant results for this metric.


#164342 71382d4 Use regular type parsing for argument-position const parameters

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.2% [0.1%, 0.2%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -3.1%)

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)
-3.1% [-4.6%, -1.6%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -3.1% [-4.6%, -1.6%] 2

Cycles

Results (secondary -3.7%)

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)
4.7% [4.7%, 4.7%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-12.1% [-12.1%, -12.1%] 1
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.

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-compiletest Area: The compiletest test runner 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-rustdoc-json Area: Rustdoc JSON backend A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. PG-exploit-mitigations Project group: Exploit mitigations rollup A PR which is a rollup 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. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.