about summary refs log tree commit diff
path: root/compiler/rustc_interface/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2025-04-10 20:19:11 +0000
committerbors <bors@rust-lang.org>2025-04-10 20:19:11 +0000
commit0fe8f3454dbe9dda52a254991347e96bec579a6f (patch)
tree7f09bac539ffe0294fd299f526c21bd748d75526 /compiler/rustc_interface/src
parent2205455d444f5f9da3a52e50f43c0306480218fb (diff)
parent63dcac8423750369ee251e2bad0945ad765eaf5c (diff)
downloadrust-0fe8f3454dbe9dda52a254991347e96bec579a6f.tar.gz
rust-0fe8f3454dbe9dda52a254991347e96bec579a6f.zip
Auto merge of #137412 - scottmcm:redo-swap, r=cuviper
Ensure `swap_nonoverlapping` is really always untyped

This replaces #134954, which was arguably overcomplicated.

## Fixes #134713

Actually using the type passed to `ptr::swap_nonoverlapping` for anything other than its size + align turns out to not work, so this goes back to always erasing the types down to just bytes.

(Except in `const`, which keeps doing the same thing as before to preserve `@RalfJung's` fix from #134689)

## Fixes #134946

I'd previously moved the swapping to use auto-vectorization *on bytes*, but someone pointed out on Discord that the tail loop handling from that left a whole bunch of byte-by-byte swapping around.  This goes back to manual tail handling to avoid that, then still triggers auto-vectorization on pointer-width values.  (So you'll see `<4 x i64>` on `x86-64-v3` for example.)
Diffstat (limited to 'compiler/rustc_interface/src')
0 files changed, 0 insertions, 0 deletions