On 06/14/2010 08:25 PM, Paul E. McKenney wrote:
Anyway, a simple configure test is to compile this with -fdump-rtl-expand:

        int
        f()
        {
          __sync_synchronize();
        }

If the assembly output includes "__sync_synchronize", or the dump
file includes the text "unspec:BLK", it should be fine.  In
particular, ia64, mips, and Alpha are ok.  Else you can use the
pthreads trick.  I can try to make a patch if you're interested.
Or, more simply, it's possible to hardcode the above three platforms
since it's unlikely that others will be added soon.

And I attached the input file, the .expand file, and the .s file.

I see neither __sync_synchronize in the .s file nor "unspec" in the
.expand file.  Or was I confused about what to look for?

No, the __sync_synchronize instruction is optimized out. I think I'll make GCC 4.6+ give a warning.

Paolo

_______________________________________________
ltt-dev mailing list
[email protected]
http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev

Reply via email to