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 5 pull requests #131098

Merged
merged 12 commits into from
Oct 1, 2024
Merged

Rollup of 5 pull requests #131098

merged 12 commits into from
Oct 1, 2024

Commits on Sep 20, 2024

  1. Configuration menu
    Copy the full SHA
    fa125e2 View commit details
    Browse the repository at this point in the history

Commits on Sep 30, 2024

  1. Configuration menu
    Copy the full SHA
    af3f212 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d87e0ca View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7c552d5 View commit details
    Browse the repository at this point in the history
  4. Update wasm-component-ld to 0.5.9

    This updates the `wasm-component-ld` linker binary for the
    `wasm32-wasip2` target to 0.5.9, pulling in a few bug fixes and recent
    updates.
    alexcrichton committed Sep 30, 2024
    Configuration menu
    Copy the full SHA
    91d0752 View commit details
    Browse the repository at this point in the history

Commits on Oct 1, 2024

  1. Configuration menu
    Copy the full SHA
    4529b86 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    50a6a35 View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#130630 - taiki-e:s390x-clobber-abi, r=Amanieu

    Support clobber_abi and vector/access registers (clobber-only) in s390x inline assembly
    
    This supports `clobber_abi` which is one of the requirements of stabilization mentioned in rust-lang#93335.
    
    This also supports vector registers (as `vreg`) and access registers (as `areg`) as clobber-only, which need to support clobbering of them to implement clobber_abi.
    
    Refs:
    - "1.2.1.1. Register Preservation Rules" section in ELF Application Binary Interface s390x Supplement, Version 1.6.1 (lzsabi_s390x.pdf in https://github.com/IBM/s390x-abi/releases/tag/v1.6.1)
    - Register definition in LLVM:
      - Vector registers https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td#L249
      - Access registers https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td#L332
    
    I have three questions:
    - ~~ELF Application Binary Interface s390x Supplement says that `cc` (condition code, bits 18-19 of PSW) is "Volatile".
      However, we do not have a register class for `cc` and instead mark `cc` as clobbered unless `preserves_flags` is specified (rust-lang#111331).
      Therefore, in the current implementation, if both `preserves_flags` and `clobber_abi` are specified, `cc` is not marked as clobbered. Is this okay? Or even if `preserves_flags` is used, should `cc` be marked as clobbered if `clobber_abi` is used?~~ UPDATE: resolved rust-lang#130630 (comment)
    - ~~ELF Application Binary Interface s390x Supplement says that `pm` (program mask, bits 20-23 of PSW) is "Cleared".
      There does not appear to be any registers associated with this in either [LLVM](https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td) or [GCC](https://github.com/gcc-mirror/gcc/blob/33ccc1314dcdb0b988a9276ca6b6ce9b07bea21e/gcc/config/s390/s390.h#L407-L431), so at this point I don't see any way other than to just ignore it. Is this okay as-is?~~ UPDATE: resolved rust-lang#130630 (comment)
    - Is "areg" a good name for register class name for access registers? It may be a bit confusing between that and `reg_addr`, which uses the “a” constraint (rust-lang#119431)...
    
    Note:
    
    - GCC seems to [recognize only `a0` and `a1`](https://github.com/gcc-mirror/gcc/blob/33ccc1314dcdb0b988a9276ca6b6ce9b07bea21e/gcc/config/s390/s390.h#L428-L429), and using `a[2-15]` [causes errors](https://godbolt.org/z/a46vx8jjn).
      Given that cg_gcc has a similar problem with other architecture (rust-lang/rustc_codegen_gcc#485), I don't feel this is a blocker for this PR, but it is worth mentioning here.
    - `vreg` should be able to accept `#[repr(simd)]` types as input if the `vector` target feature added in rust-lang#127506 is enabled, but core_arch has no s390x vector type and both `#[repr(simd)]` and `core::simd` are unstable, so I have not implemented it in this PR. EDIT: And supporting it is probably more complex than doing the equivalent on other architectures... rust-lang#88245 (comment)
    
    cc `@uweigand`
    
    r? `@Amanieu`
    
    `@rustbot` label +O-SystemZ
    GuillaumeGomez authored Oct 1, 2024
    Configuration menu
    Copy the full SHA
    344b6a1 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#131042 - compiler-errors:supertrait-vtable,…

    … r=lcnr
    
    Instantiate binders in `supertrait_vtable_slot`
    
    `supertrait_vtable_slot` was previously using structural equality when probing for the vtable slot, which led to an ICE since we need a *subtype* match, not an exact match.
    
    Fixes rust-lang#131027
    
    r? lcnr
    GuillaumeGomez authored Oct 1, 2024
    Configuration menu
    Copy the full SHA
    bf38cae View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#131079 - alexcrichton:update-wasm-component…

    …-ld, r=jieyouxu
    
    Update wasm-component-ld to 0.5.9
    
    This updates the `wasm-component-ld` linker binary for the `wasm32-wasip2` target to 0.5.9, pulling in a few bug fixes and recent updates.
    GuillaumeGomez authored Oct 1, 2024
    Configuration menu
    Copy the full SHA
    d007008 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#131085 - RalfJung:miri-slow-test, r=tgross35

    make test_lots_of_insertions test take less long in Miri
    
    This is by far the slowest `std` test in Miri, taking >2min in https://github.com/rust-lang/miri-test-libstd CI. So let's make this `count` smaller. The runtime should be quadratic in `count` so reducing it to around 2/3 of it's previous value should cut the total time down to less than half -- making it still the slowest test, but by less of a margin. (And this way we still insert >64 elements into the HashMap, in case that power of 2 matters.)
    GuillaumeGomez authored Oct 1, 2024
    Configuration menu
    Copy the full SHA
    b9263c6 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#131088 - klensy:llvm-terminfo, r=Kobzol

    add fixme to remove LLVM_ENABLE_TERMINFO when minimal llvm version is 19
    
    `LLVM_ENABLE_TERMINFO` was removed in llvm 19: https://github.com/llvm/llvm-project/blob/release/19.x/llvm/docs/ReleaseNotes.rst#changes-to-building-llvm; current minimal llvm is 18, so left fixme here.
    GuillaumeGomez authored Oct 1, 2024
    Configuration menu
    Copy the full SHA
    91f079a View commit details
    Browse the repository at this point in the history