http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51798
--- Comment #6 from Andrew Macleod <amacleod at redhat dot com> 2012-01-24 16:02:03 UTC --- Others expressed concern about a change that could potentially affect all targets since its in libstdc++ code, especially considering this code is being deprecated. There are targets other than power that are also sensitive to the new semantics, both arm and alpha will change barrier emission based on the model used in fetch_and_add. I suggest acq-rel simply because it produces the same barrier structure power had in previous releases, is less intrusive, and is less likely to have an additional unforeseen impact anywhere else (other targets will also get the same barriers they had I believe.) You should see the same performance you had before wouldn't you? Im not arguing that using just release and acquire semantics instead wouldn't also be correct, merely that it is harder to prove the semantic change won't have unforeseen side effects in someones code. Its possible that relaxed mode might be also good enough, but again, harder to prove and comes with even greater risk. Anyway, just providing an option. It the libstdc++ guys that have to make the decision :-)