[Bug libstdc++/51798] [4.7 regression] libstdc++ atomicity performance regression due to __sync_fetch_and_add

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jan 26 13:52:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51798

--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-01-26 13:01:58 UTC ---
What about the other files that use __sync_* in libstdc++?
include/tr1/shared_ptr.h, include/bits/shared_ptr_base.h,
include/profile/impl/profiler_state.h, libsupc++/guard.cc and parts of
include/parallel/compatibility.h use __sync_*compare_and_swap or
__sync_lock_test_and_set, so I assume that we have the same code for those on
ppc* as before, but in
include/parallel/compatibility.h, libsupc++/eh_tm.cc, libsupc++/eh_ptr.cc and
libsupc++/eh_throw.cc __sync_*fetch* is used.  Should we change all those to
use acq_rel semantics __atomic* counterparts in addition to
include/ext/atomicity.h and config/cpu/generic/atomicity_builtins/atomicity.h?



More information about the Gcc-bugs mailing list