There should be a fuzzer action that takes a random atomic action and increases its MO to the next-strongest applicable MO, eg relaxed -> release -> seq_cst or relaxed -> acquire -> seq_cst (there are some other MOs but I can't remember exactly what they are and how they fit).
Once this is in situ, it may be worthwhile changing the atomic generator actions to emit relaxed always. (It may not be worthwhile. It depends on how fine-grained we want the actions to be, but I generally err on the side of atomicity.)
There should be a fuzzer action that takes a random atomic action and increases its MO to the next-strongest applicable MO, eg
relaxed -> release -> seq_cst
orrelaxed -> acquire -> seq_cst
(there are some other MOs but I can't remember exactly what they are and how they fit).Once this is in situ, it may be worthwhile changing the atomic generator actions to emit
relaxed
always. (It may not be worthwhile. It depends on how fine-grained we want the actions to be, but I generally err on the side of atomicity.)