|
|
|
|
|
by gpderetta
2401 days ago
|
|
> The C++11/C11 memory model added memory_order_consume specifically to support the Alpha. yes and no. Alpha is relevant because it is the only architecture where consume requires an explicit barrier, but then again, I think the revised C++11 memory model might not even be fully implementable on Alpha; Consume primarily exist because acquire is very expensive to implement in traditional RISCs like POWER and 32 bit ARM, while consume can be implemented with a data or control dependency. Aarch64 has efficient acquire/release barriers, so it is less of an issue. /pedantic |
|
acq/rel remains efficient on a platform that doesn't need barriers to implement it (ie, x86).
consume remains efficient on a platform that doesn't need barriers to enforce a dataflow dependency (ie, ARMv7).