Rollup merge of #141507 - RalfJung:atomic-intrinsics, r=bjorn3

atomic_load intrinsic: use const generic parameter for ordering

We have a gazillion intrinsics for the atomics because we encode the ordering into the intrinsic name rather than making it a parameter. This is particularly bad for those operations that take two orderings. Let's fix that!

This PR only converts `load`, to see if there's any feedback that would fundamentally change the strategy we pursue for the const generic intrinsics.

The first two commits are preparation and could be a separate PR if you prefer.

`@BoxyUwU` -- I hope this is a use of const generics that is unlikely to explode? All we need is a const generic of enum type. We could funnel it through an integer if we had to but an enum is obviously nicer...

`@bjorn3` it seems like the cranelift backend entirely ignores the ordering?
This commit is contained in:
Matthias Krüger
2025-05-30 07:01:30 +02:00
committed by GitHub
20 changed files with 210 additions and 105 deletions

View File

@@ -515,6 +515,7 @@ symbols! {
async_iterator_poll_next,
async_trait_bounds,
atomic,
atomic_load,
atomic_mod,
atomics,
att_syntax,