[GHC] #9346: AtomicPrimOps tests failing on 32-bit x86

GHC ghc-devs at haskell.org
Tue Jul 22 15:16:36 UTC 2014


#9346: AtomicPrimOps tests failing on 32-bit x86
-------------------------------------+-------------------------------------
              Reporter:  niklasl     |             Owner:
                  Type:  bug         |            Status:  new
              Priority:  normal      |         Milestone:
             Component:  Compiler    |           Version:  7.9
            Resolution:              |          Keywords:
Differential Revisions:              |  Operating System:  Unknown/Multiple
          Architecture:              |   Type of failure:  None/Unknown
  Unknown/Multiple                   |         Test Case:
            Difficulty:  Unknown     |          Blocking:
            Blocked By:              |
       Related Tickets:              |
-------------------------------------+-------------------------------------

Comment (by tibbe):

 Aside: I've confirmed that loads don't need any kind of fences but we need
 an `mfence` for stores, which we don't have currently. You can see GCC
 outputting one here:

 {{{
 #include <stdatomic.h>

 void f(atomic_int* obj, int val) {
   return atomic_store(obj, val);
 }
 }}}

 Output:

 {{{
         .file   "repro.c"
         .text
         .globl  f
         .type   f, @function
 f:
 .LFB0:
         .cfi_startproc
         movl    %esi, (%rdi)
         mfence
         ret
         .cfi_endproc
 .LFE0:
         .size   f, .-f
         .ident  "GCC: (GNU) 4.9.1"
         .section        .note.GNU-stack,"", at progbits
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9346#comment:5>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list