Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 8 pull requests #133433

Merged
merged 19 commits into from
Nov 25, 2024
Merged

Rollup of 8 pull requests #133433

merged 19 commits into from
Nov 25, 2024

Conversation

matthiaskrgr
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Voultapher and others added 19 commits November 2, 2024 10:53
Also add some other proper files to the trigger list of this label.
Signed-off-by: wangjingcun <[email protected]>
When outputs are used together with labels, they are considered
to be written for all destinations, not only when falling through.
When labels are present, the `noreturn` option really means that asm block
won't fallthrough -- if labels are present, then outputs can still be
meaningfully used.
Fix asm goto with outputs and move it to a separate feature gate

Tracking issue: rust-lang#119364

This PR addresses 3 aspects of asm goto with outputs:
* Codegen is fixed. My initial implementation has an oversight which cause the output to be only stored in fallthrough path, but not in label blocks.
* Outputs can now be used with `options(noreturn)` if a label block is given.
* All of this is moved to a new feature gate, because we likely want to stabilise `asm_goto` before asm goto with outputs.

`@rustbot` labels: +A-inline-assembly +F-asm
…anieu

Support input/output in vector registers of s390x inline assembly (under asm_experimental_reg feature)

This extends currently clobber-only vector registers (`vreg`) support to allow passing `#[repr(simd)]` types, floats (f32/f64/f128), and integers (i32/i64/i128) as input/output.

This is unstable and gated under new `#![feature(asm_experimental_reg)]` (tracking issue: rust-lang#133416). If the feature is not enabled, only clober is supported as before.

| Architecture | Register class | Target feature | Allowed types |
| ------------ | -------------- | -------------- | -------------- |
| s390x | `vreg` | `vector` | `i32`, `f32`, `i64`, `f64`, `i128`, `f128`, `i8x16`, `i16x8`, `i32x4`, `i64x2`, `f32x4`, `f64x2` |

This matches the list of types that are supported by the vector registers in LLVM:
https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td#L301-L313

In addition to `core::simd` types and floats listed above, custom `#[repr(simd)]` types of the same size and type are also allowed. All allowed types other than i32/f32/i64/f64/i128, and relevant target features are currently unstable.

Currently there is no SIMD type for s390x in `core::arch`, but this is tracked in rust-lang#130869.

cc rust-lang#130869 about vector facility support in s390x
cc rust-lang#125398 & rust-lang#116909 about f128 support in asm

`@rustbot` label +O-SystemZ +A-inline-assembly
…=Mark-Simulacrum

Add a test to verify that libstd doesn't use protected symbols
…in-config-toml-example, r=Mark-Simulacrum

Document possibility to set core features in example config.toml
…-of-trigger-file-LICENSES, r=Mark-Simulacrum

ci(triagebot): add more top-level files to A-meta

It didn't exist so I changed it with its new versions: `COPYRIGHT`, `LICENSE-APACHE` and `LICENSE-MIT`

I also added some other files I found appropriate under the related label.
Add BorrowedBuf::into_filled{,_mut} methods to allow returning buffer with original lifetime

See rust-lang/libs-team#473 and tracking issue rust-lang#117693.
…methods, r=Mark-Simulacrum

alloc: fix `Allocator` method names in `alloc` free function docs

It looks like these got renamed in rust-lang@9274b37 but the docs never updated.

I couldn't find any history for `Allocator::realloc`.  The `grow` API is not 1:1 (e.g., it returns a result), so this may not be the correct change - let me know and I can change the method or even remove this entirely.
@rustbot rustbot added A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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-libs Relevant to the library team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Nov 25, 2024
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=8

@bors
Copy link
Contributor

bors commented Nov 25, 2024

📌 Commit d2590e0 has been approved by matthiaskrgr

It is now in the queue for this repository.

@bors bors 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 Nov 25, 2024
@bors
Copy link
Contributor

bors commented Nov 25, 2024

⌛ Testing commit d2590e0 with merge 1278dad...

@bors
Copy link
Contributor

bors commented Nov 25, 2024

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 1278dad to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Nov 25, 2024
@bors bors merged commit 1278dad into rust-lang:master Nov 25, 2024
7 checks passed
@rustbot rustbot added this to the 1.85.0 milestone Nov 25, 2024
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#131523 Fix asm goto with outputs and move it to a separate feature… 27a605224cd1010b28c21fea34f2269e99fd2d06 (link)
#131664 Support input/output in vector registers of s390x inline as… ba23619f782d8f86ca1cf056d59117954ac198b1 (link)
#132432 Add a test to verify that libstd doesn't use protected symb… ddcad2678b72f02309210a76b45cbc66897dc0d9 (link)
#132502 Document possibility to set core features in example config… 3b19d575b6c1f16ed70545a984404064afd0dca9 (link)
#132529 ci(triagebot): add more top-level files to A-meta 74d12f824290bf14afe0fe366708655c6f8db39d (link)
#132533 Add BorrowedBuf::into_filled{,_mut} methods to allow return… 039c07d8af158f3f3e08206a12c942541367e622 (link)
#132803 Fix broken url b46a42a10668282f4f25f015a27f6ab212c85b23 (link)
#132982 alloc: fix Allocator method names in alloc free functio… ddb3d7e52155b395491832f49a32f327f4f2009e (link)

previous master: 67a8c64259

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

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (1278dad): comparison URL.

Overall result: ❌ regressions - no action needed

@rustbot label: -perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

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

Max RSS (memory usage)

Results (secondary 1.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.5% [2.3%, 2.6%] 4
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-4.9% [-4.9%, -4.9%] 1
All ❌✅ (primary) - - 0

Cycles

Results (primary -2.5%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

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

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 795.632s -> 797.447s (0.23%)
Artifact size: 336.27 MiB -> 336.31 MiB (0.01%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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-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.