Trevor Gross
6fa6a854cd
Rollup merge of #144192 - RalfJung:atomicrmw-ptr, r=nikic
...
atomicrmw on pointers: move integer-pointer cast hacks into backend
Conceptually, we want to have atomic operations on pointers of the form `fn atomic_add(ptr: *mut T, offset: usize, ...)`. However, LLVM does not directly support such operations (https://github.com/llvm/llvm-project/issues/120837 ), so we have to cast the `offset` to a pointer somewhere.
This PR moves that hack into the LLVM backend, so that the standard library, intrinsic, and Miri all work with the conceptual operation we actually want. Hopefully, one day LLVM will gain a way to represent these operations without integer-pointer casts, and then the hack will disappear entirely.
Cc ```@nikic``` -- this is the best we can do right now, right?
Fixes https://github.com/rust-lang/rust/issues/134617
2025-08-08 14:22:44 -05:00
..
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-23 14:19:14 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-08-06 09:11:35 -07:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-26 22:45:18 +00:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-29 11:20:23 -07:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-08-07 13:41:17 +00:00
2025-07-28 11:58:38 +00:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-29 11:20:23 -07:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-23 08:32:55 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-26 01:02:29 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-08-01 18:38:22 +01:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-29 11:20:23 -07:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-29 11:20:23 -07:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-29 11:20:23 -07:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-23 11:23:36 +00:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-27 14:42:07 +03:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-29 18:59:09 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-29 11:20:23 -07:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-08-06 18:01:07 +00:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-29 11:20:23 -07:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00
2025-07-23 02:17:54 +03:00
2025-07-22 14:28:48 +02:00
2025-07-22 14:28:48 +02:00