Patch for PR libgomp/37938, IA64 specific.

H.J. Lu hjl.tools@gmail.com
Wed Nov 12 15:48:00 GMT 2008


On Wed, Nov 12, 2008 at 6:15 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Fri, Nov 07, 2008 at 11:33:26AM -0800, H.J. Lu wrote:
>> I am testing this patch. There is no need for memory barrier with acq semantics.
>
> Isn't acquire semantics of cmpxchg.acq weaker than fence semantics that
> __sync_* builtins other than __sync_lock_{test_and_set,release} are supposed
> to have?  E.g. http://refspecs.freestandards.org/elf/IA64-SysV-psABI.pdf
> documents __sync_{bool,val}_compare_and_swap as Full barrier.  I think
> in libgomp, glibc and many other places __sync_{bool,val}_compare_and_swap
> is used in places where release semantics or fence semantics is needed.
>
>        Jakub
>

Here is the the ordering interactions between memory accesses with
different ordering
semantics. "O" indicates that the first and second reference are
performed in order with
respect to each other. A "-" indicates that no ordering is implied.

                                                    Second Reference
  First Reference
                                    Fence               Acquire
   Release          Unordered
 fence                               O                         O
           O                           O
acquire                            O                         O
         O                           O
release                            O                         –
          O                            –
unordered                       O                         –
       O                           –

We need to make sure that we never hit "-".

-- 
H.J.



More information about the Gcc-patches mailing list