Commit Graph

2553 Commits

Author SHA1 Message Date
bors 2b5e239c6b Auto merge of #144225 - purplesyringa:unwinding-intrinsics, r=nikic
Don't special-case llvm.* as nounwind

Certain LLVM intrinsics, such as `llvm.wasm.throw`, can unwind. Marking them as nounwind causes us to skip cleanup of locals and optimize out `catch_unwind` under inlining or when `llvm.wasm.throw` is used directly by user code.

The motivation for forcibly marking llvm.* as nounwind is no longer present: most intrinsics are linked as `extern "C"` or other non-unwinding ABIs, so we won't codegen `invoke` for them anyway.

Closes rust-lang/rust#132416.

`@rustbot` label +T-compiler +A-panic
2025-07-27 23:05:48 +00:00
Alisa Sireneva 17519aeaef Allow ffi_unwind_calls for arch::wasm32::throw 2025-07-25 18:28:03 +03:00
Jakub Beránek 847f8db5ad Remove std_detect from stdarch's CI 2025-07-22 20:22:16 +02:00
Jakub Beránek 608297247a Remove std_detect from stdarch examples 2025-07-22 20:22:16 +02:00
Jakub Beránek 8dc2abb5c3 Update stdarch README 2025-07-22 20:17:49 +02:00
Jakub Beránek 5b2de8ab27 Move std_detect from library/stdarch to library 2025-07-22 20:17:06 +02:00
Amanieu d'Antras 9b7d31c851 Merge pull request #1862 from folkertdev/combine-c-files
`intrinsic-test`: combine C files for faster compilation
2025-07-18 21:23:35 +00:00
Amanieu d'Antras 8fe55684d8 Merge pull request #1860 from folkertdev/stdarch-test-cleanup
`stdarch-test`: various cleanups
2025-07-18 20:27:56 +00:00
Folkert de Vries d198c4fbf5 Merge pull request #1874 from heiher/loong-safe
loongarch: Mark partial intrinsics as safe
2025-07-18 13:15:24 +00:00
WANG Rui da892b54be loongarch: Mark SIMD intrinsics without memory access as safe 2025-07-18 20:42:19 +08:00
Folkert de Vries 846c591bf6 intrinsic-test: combine C files for more efficient compilation 2025-07-18 13:24:11 +02:00
Folkert de Vries 6ed7ee36e6 exclude generated rust programs from the workspace 2025-07-18 13:17:38 +02:00
Folkert de Vries a657eb29e2 Merge pull request #1878 from madhav-madhusoodanan/intrinsic-test-box-removing-and-more
`intrinsic-test`: Implemented DerefMut for ArmIntrinsicTest
2025-07-18 10:20:35 +00:00
Folkert de Vries 2b6d8f36c8 Merge pull request #1861 from folkertdev/streamline-c-compilation
`intrinsic-test`: streamline c compilation
2025-07-18 10:12:22 +00:00
Folkert de Vries 76de7566e4 Merge pull request #1877 from folkertdev/check-stdarch-gen
Check that the checked-in version of `stdarch-gen-{arm, loongarch}` is up-to-date
2025-07-18 09:48:49 +00:00
Folkert de Vries 75887cf995 improve cpp compiler execution 2025-07-18 11:38:18 +02:00
Folkert de Vries 668fdbe41e pass the whole config to C compiler construction 2025-07-18 11:25:11 +02:00
Folkert de Vries 194aa89fdd add CI action to check that generated files are correctly checked in 2025-07-18 11:13:59 +02:00
WANG Rui b57ff35641 loongarch: Mark partial basic intrinsics as safe 2025-07-18 11:52:17 +08:00
Folkert de Vries 5438a7c110 stdarch-test: for now, allow if only part of an instruction matched 2025-07-17 02:12:16 +02:00
Folkert de Vries b74c4825cb test for the high version of a number of instructions 2025-07-17 02:12:15 +02:00
Madhav Madhusoodanan 10d7b7b676 Implemented DerefMut for ArmIntrinsicTest
More details: 1. Moved the return type of IntrinsicType::from_c to
Rust<Self, String> from Result<Box<Self>, String>
2025-07-16 23:49:04 +05:30
Folkert de Vries 0d9d209417 fix space in generated loongarch 2025-07-16 16:27:51 +02:00
Amanieu d'Antras f694b583e6 Merge pull request #1875 from sayantn/sde-update
Bump CI versions
2025-07-16 12:23:08 +00:00
sayantn 08ef071717 Update wasmprinter to latest 2025-07-16 17:18:23 +05:30
sayantn ed2918988b Bump versions in CI
- `clang-19` -> `clang-20` in ARM
 - `gcc-14.2` -> `gcc-14.3` in AArch64-BE
 - `gcc-14` ->`gcc-15` in LA64
 - `riscv-gnu-v2025.01.20` -> `riscv-gnu-v2025.07.03` in Risc-V 32
 - `wasmtime-v18.0.2` -> `wasmtime-v34.0.1`
2025-07-16 17:18:23 +05:30
sayantn a2486a5138 Update Docker OS to Ubuntu-25.10 2025-07-16 17:18:22 +05:30
sayantn d8a783dab5 Update SDE to v9.58.0 2025-07-16 17:18:16 +05:30
Madhav Madhusoodanan 959d191a25 Modified Typekind to group the Signed and Unsigned version of types. 2025-07-16 17:12:12 +05:30
Folkert de Vries bdd1ca1eea aarch64: check for trn1 and trn2 2025-07-15 22:17:03 +02:00
Folkert de Vries c13e3aa6b4 aarch64: check for uzp1 and uzp2 2025-07-15 22:17:02 +02:00
Folkert de Vries ce3eabfd70 aarch64: check for zip1 and zip2 2025-07-15 22:17:02 +02:00
Folkert de Vries 6444994556 aarch64/arm: fix tests that matched on prefix of instruction 2025-07-15 20:20:46 +02:00
Folkert de Vries f6f6715990 s390x: fix tests that matched on prefix of instruction 2025-07-15 20:20:46 +02:00
Folkert de Vries f8de93acbe stdarch-test: error if only part of an instruction matched 2025-07-15 20:20:46 +02:00
Folkert de Vries 36340cd774 stdarch-test: misc cleanups 2025-07-15 20:20:46 +02:00
Folkert de Vries 7ff9bcfd1e stdarch-test: use std::sync::LazyLock instead of lazy_static! 2025-07-15 20:20:46 +02:00
Folkert de Vries 5cb1e01a94 update Cargo.lock 2025-07-15 20:20:45 +02:00
Amanieu d'Antras 2aaa584094 Merge pull request #1872 from folkertdev/aarch64-horizontal-add
`aarch64`: use `intrinsics::simd` for horizontal add and `abs`
2025-07-15 00:19:05 +00:00
Folkert de Vries 48c33b7748 aarch64: implement vabs using instrinsics::simd 2025-07-15 01:36:20 +02:00
Amanieu d'Antras 1a8c5324f0 Merge pull request #1869 from folkertdev/s390x-use-rounding-intrinsic
`s390x`: document the different rounding flavors
2025-07-14 23:28:37 +00:00
Amanieu d'Antras 7d10ff1a18 Merge pull request #1837 from heiher/loong32
loongarch: Add basic support for LoongArch32
2025-07-14 23:27:09 +00:00
Amanieu d'Antras dd64d860be Merge pull request #1871 from folkertdev/aarch64-float-min-max
`aarch64`: use more of `intrinsics::simd` for min/max
2025-07-14 23:24:32 +00:00
Amanieu d'Antras 63cc37c578 Merge pull request #1870 from Kobzol/rustc-pull-ci
Add rustc-pull CI automation workflow
2025-07-14 23:23:21 +00:00
Amanieu d'Antras decddf758a Merge pull request #1852 from folkertdev/optimize-intrinsic-test
`intrinsic-test`: use runner also for rust
2025-07-14 23:18:04 +00:00
Folkert de Vries 74e2cb12d1 s390x: document the different rounding flavors 2025-07-14 17:22:38 +02:00
Folkert de Vries 42bcb0668e aarch64: use simd_reduce_add_unordered 2025-07-12 21:50:51 +02:00
Folkert de Vries 17b8fc938d aarch64: use simd_reduce_min and simd_reduce_max for integers 2025-07-12 18:12:09 +02:00
Folkert de Vries 750ddfd8d3 aarch64: use simd_reduce_min and simd_reduce_max for floats 2025-07-12 18:12:08 +02:00
Folkert de Vries 72afae5fd6 arm: use simd_fmin and simd_fmax 2025-07-12 18:12:08 +02:00