-
Notifications
You must be signed in to change notification settings - Fork 13.4k
use PassMode::Direct
for vector types on s390x
#135785
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
use PassMode::Direct
for vector types on s390x
#135785
Conversation
Failed to set assignee to
|
Thanks! The change looks good to me. Could you add a test that checks generated LLVM IR is expected (i.e., test case for #135744) to |
cc @uweigand |
916b1da
to
893d81f
Compare
I added a codegen test, using |
r? compiler |
Maybe r? @bjorn3 since you discussed this on the linked issue |
@bors r+ |
…irect, r=bjorn3 use `PassMode::Direct` for vector types on `s390x` closes rust-lang#135744 tracking issue: rust-lang#130869 Previously, all vector types were type erased to `Ni8`, now we pass non-wrapped vector types directly. That skips emitting a bunch of casting logic in rustc, that LLVM then has to clean up. The initial LLVM IR is also a bit more readable. This calling convention is tested extensively in `tests/assembly/s390x-vector-abi.rs`, showing that this change has no impact on the ABI in practice. r? `@taiki-e`
Rollup of 7 pull requests Successful merges: - rust-lang#130808 (Fix linking for symbols starting with ? on i686-pc-windows-msvc) - rust-lang#133138 (Target modifiers (special marked options) are recorded in metainfo) - rust-lang#133154 (Reword resolve errors caused by likely missing crate in dep tree) - rust-lang#135707 (Shorten linker output even more when `--verbose` is not present) - rust-lang#135764 (Fix tests on LLVM 20) - rust-lang#135785 (use `PassMode::Direct` for vector types on `s390x`) - rust-lang#135818 (tests: Port `translation` to rmake.rs) Failed merges: - rust-lang#133951 (Make the wasm_c_abi future compat warning a hard error) r? `@ghost` `@rustbot` modify labels: rollup try-job: aarch64-apple try-job: i686-mingw try-job: x86_64-gnu-llvm-19-3
…irect, r=bjorn3 use `PassMode::Direct` for vector types on `s390x` closes rust-lang#135744 tracking issue: rust-lang#130869 Previously, all vector types were type erased to `Ni8`, now we pass non-wrapped vector types directly. That skips emitting a bunch of casting logic in rustc, that LLVM then has to clean up. The initial LLVM IR is also a bit more readable. This calling convention is tested extensively in `tests/assembly/s390x-vector-abi.rs`, showing that this change has no impact on the ABI in practice. r? ``@taiki-e``
Rollup of 6 pull requests Successful merges: - rust-lang#130808 (Fix linking for symbols starting with ? on i686-pc-windows-msvc) - rust-lang#133154 (Reword resolve errors caused by likely missing crate in dep tree) - rust-lang#135707 (Shorten linker output even more when `--verbose` is not present) - rust-lang#135764 (Fix tests on LLVM 20) - rust-lang#135785 (use `PassMode::Direct` for vector types on `s390x`) - rust-lang#135818 (tests: Port `translation` to rmake.rs) r? `@ghost` `@rustbot` modify labels: rollup try-job: aarch64-apple try-job: i686-mingw try-job: x86_64-gnu-llvm-19-3
…irect, r=bjorn3 use `PassMode::Direct` for vector types on `s390x` closes rust-lang#135744 tracking issue: rust-lang#130869 Previously, all vector types were type erased to `Ni8`, now we pass non-wrapped vector types directly. That skips emitting a bunch of casting logic in rustc, that LLVM then has to clean up. The initial LLVM IR is also a bit more readable. This calling convention is tested extensively in `tests/assembly/s390x-vector-abi.rs`, showing that this change has no impact on the ABI in practice. r? ```@taiki-e```
Rollup of 4 pull requests Successful merges: - rust-lang#135707 (Shorten linker output even more when `--verbose` is not present) - rust-lang#135764 (Fix tests on LLVM 20) - rust-lang#135785 (use `PassMode::Direct` for vector types on `s390x`) - rust-lang#135818 (tests: Port `translation` to rmake.rs) r? `@ghost` `@rustbot` modify labels: rollup try-job: aarch64-apple try-job: i686-mingw try-job: x86_64-gnu-llvm-19-3
Rollup of 7 pull requests Successful merges: - rust-lang#133951 (Make the wasm_c_abi future compat warning a hard error) - rust-lang#134283 (fix(libtest): Deprecate '--logfile') - rust-lang#135785 (use `PassMode::Direct` for vector types on `s390x`) - rust-lang#135948 (Update emscripten std tests) - rust-lang#135951 (Use `fmt::from_fn` in more places in the compiler) - rust-lang#136031 (Expand polonius MIR dump) - rust-lang#136032 (Account for mutable borrow in argument suggestion) Failed merges: - rust-lang#135635 (Move `std::io::pipe` code into its own file) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#135785 - folkertdev:s390x-vector-passmode-direct, r=bjorn3 use `PassMode::Direct` for vector types on `s390x` closes rust-lang#135744 tracking issue: rust-lang#130869 Previously, all vector types were type erased to `Ni8`, now we pass non-wrapped vector types directly. That skips emitting a bunch of casting logic in rustc, that LLVM then has to clean up. The initial LLVM IR is also a bit more readable. This calling convention is tested extensively in `tests/assembly/s390x-vector-abi.rs`, showing that this change has no impact on the ABI in practice. r? ````@taiki-e````
closes #135744
tracking issue: #130869
Previously, all vector types were type erased to
Ni8
, now we pass non-wrapped vector types directly. That skips emitting a bunch of casting logic in rustc, that LLVM then has to clean up. The initial LLVM IR is also a bit more readable.This calling convention is tested extensively in
tests/assembly/s390x-vector-abi.rs
, showing that this change has no impact on the ABI in practice.r? @taiki-e