This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Patch for PR libgomp/37938, IA64 specific.


On Wed, Nov 12, 2008 at 07:47:40AM -0800, H.J. Lu wrote:
> This one is more readable:
> 
>                    Second Reference
> First Reference
>              Fence   Acquire  Release  Unordered
> fence          O         O        O         O
> acquire        O         O        O         O
> release        O         â        O         â
> unordered      O         â        O         â

So, if you take the mf out of __sync_{bool,val}_compare_and_swap
and use cmpxchg*.acq, if you do:
  mem1 = 6;
  __sync_bool_compare_and_swap (&mem2, 4, 5);
mem2 store might be visible before mem1 store, which is wrong,
as __sync_bool_compare_and_swap is documented to be a full barrier.

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]