https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96898
--- Comment #4 from Tom de Vries <vries at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #3) > For OpenMP reductions, we really don't care what kind of mutex protects the > updates, as long as it is the same for all updates of the same reduction. > I believe we don't rely on any other synchronization effects. > So, I think we should change omp-low.c so that it emits __atomic_* calls > with __ATOMIC_RELAXED rather than __sync_* calls. That sounds like a good idea. > And could just use > libatomic with its own locking if we didn't go the GOMP_atomic_{start,end} > route (that one is done if there are multiple reductions or the atomics > aren't available or there are user defined reductions we don't understand > (or all?), perhaps we should consider also using atomics perhaps even for > two simple reductions or similar. > And nvptx certainly could just use libatomic... If we use libatomic as fallback for openmp, shouldn't we then use the same lock in both?