[Bug rtl-optimization/57448] GCSE generates incorrect code with acquire barrier

amonakov at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Sep 4 10:35:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57448

Alexander Monakov <amonakov at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
                 CC|                            |amonakov at gcc dot gnu.org
         Resolution|---                         |FIXED

--- Comment #4 from Alexander Monakov <amonakov at gcc dot gnu.org> ---
This should now be fixed on the trunk, although in a very different manner: RTL
expansion of atomic loads/stores now places explicit compiler memory barriers
in the form of asm volatile ("" ::: "memory") before/after the access as
appropriate.
My patch submission said,

  There's ALIAS_SET_MEMORY_BARRIER placed on MEMs accessed via atomics, but
it's
  probably not useful, it's very hard to audit all RTL passes and ensure they
  respect it.  On the other hand, asm barriers must work or else much of
  real-world code will break.


More information about the Gcc-bugs mailing list