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
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
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
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
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
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
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
Folkert de Vries
441824cfca
aarch64
: use simd_fmin
and simd_fmax
2025-07-12 18:12:08 +02:00
Folkert de Vries
ca70466fa3
aarch64
: use f16::min
and f16::max
2025-07-12 18:12:08 +02:00
Folkert de Vries
301bb69450
Merge pull request #1868 from folkertdev/gen-arm-remove-lazy-static
...
`stdarch-gen-arm`: remove `lazy_static`, use `LazyLock` instead
2025-07-11 23:44:24 +00:00
Sayantan Chakraborty
cd48abd478
Merge pull request #1858 from folkertdev/aarch-comparison-operators
...
aarch64: use `core::intrinsics::simd` for integer min/max
2025-07-11 23:07:13 +00:00
Folkert de Vries
d6feec7735
stdarch-gen-arm
: remove lazy_static
, use LazyLock
instead
2025-07-12 01:02:49 +02:00
Folkert de Vries
92c6a736ca
Merge pull request #1867 from hkBst/fix-test-neon
...
tests: neon is arm
2025-07-11 18:41:47 +00:00
Marijn Schouten
30556edc57
tests: neon is arm
2025-07-11 17:57:11 +00:00
Marijn Schouten
a8110072ff
thumbv7neon-unknown-linux-gnueabihf clippy fixes
2025-07-11 11:13:13 +00:00
Sayantan Chakraborty
bb7a446c75
Merge pull request #1857 from folkertdev/arm-dup
...
use `splat` for the aarch64/arm dup intrinsics
2025-07-10 22:40:03 +00:00