On 11/17/2011 04:50 AM, David Edelsohn wrote: > On Thu, Nov 17, 2011 at 6:07 AM, Alan Modra <amo...@gmail.com> wrote: >> Lacking this pattern means the builtin __sync_synchronize() on powerpc >> is just an asm with a memory clobber (see builtins.c), which is hardly >> a "full memory barrier" as extend.texi says it should be. This patch >> fixes multiple libgomp testsuite failures. Bootstrapped and >> regression tested powerpc-linux. OK for mainline? >> >> * config/rs6000/sync.md: Duplicate hwsync as memory_barrier. > > This is one solution. Alternatively,the expander for "hwsync" could > be renamed "memory_barrier" and all uses of gen_hwsync() changed to > gen_memory_barrier(). > > I don't mind either way, but I would like Richard' opinion. > Consistently using memory_barrier might be clearer to other GCC > developers who look at the rs6000 port.
We're supposed to be looking at the new atomics patterns first, when they are available. Apparently __sync_synchronize got missed. It should be looking at mem_thread_fence before looking for memory_barrier. Will fix. r~