Hi!

On Mon, 30 Jan 2017 19:54:00 +0100, Torvald Riegel <trie...@redhat.com> wrote:
> This patch fixes the __atomic builtins to not implement supposedly
> lock-free atomic loads based on just a compare-and-swap operation.  [...]

> I've tested this on an x86_64-linux bootstrap build and see no
> regressions.  (With the exception of two OpenMP failures, which Jakub
> will take care of.

These are:

    [-PASS:-]{+FAIL:+} libgomp.c/atomic-2.c (test for excess errors)
    [-PASS:-]{+UNRESOLVED:+} libgomp.c/atomic-2.c [-execution 
test-]{+compilation failed to produce executable+}

    atomic-2.c:(.text+0x50): undefined reference to `__atomic_load_16'

    [-PASS:-]{+FAIL:+} libgomp.c/atomic-5.c (test for excess errors)
    [-PASS:-]{+UNRESOLVED:+} libgomp.c/atomic-5.c [-execution 
test-]{+compilation failed to produce executable+}

    atomic-5.c:(.text+0x55): undefined reference to `__atomic_load_16'

(Would've been nice to xfail these as part of your commit, until Jakub
gets to address that.)

> The other failures I saw didn't seem atomics related
> (eg, openacc)

I suppose you're testing without nvptx offloading -- which failures do
you see for OpenACC testing?  (There shouldn't be any for host fallback
testing.)

> I haven't compared it against a full bootstrap build and
> make check of trunk.).

I just happened to do that for x86_64-pc-linux-gnu, and I'm seeing the
following additional changes; posting this just in case that's not
expected to happen:

    -PASS: gcc.dg/atomic-compare-exchange-5.c (test for excess errors)
    -PASS: gcc.dg/atomic-compare-exchange-5.c execution test
    +UNSUPPORTED: gcc.dg/atomic-compare-exchange-5.c

    -PASS: gcc.dg/atomic-exchange-5.c (test for excess errors)
    -PASS: gcc.dg/atomic-exchange-5.c execution test
    +UNSUPPORTED: gcc.dg/atomic-exchange-5.c

    -PASS: gcc.dg/atomic-load-5.c (test for excess errors)
    -PASS: gcc.dg/atomic-load-5.c execution test
    +UNSUPPORTED: gcc.dg/atomic-load-5.c

    -PASS: gcc.dg/atomic-op-5.c (test for excess errors)
    -PASS: gcc.dg/atomic-op-5.c execution test
    +UNSUPPORTED: gcc.dg/atomic-op-5.c

    -PASS: gcc.dg/atomic-store-5.c (test for excess errors)
    -PASS: gcc.dg/atomic-store-5.c execution test
    +UNSUPPORTED: gcc.dg/atomic-store-5.c

    -PASS: gcc.dg/atomic-store-6.c (test for excess errors)
    -PASS: gcc.dg/atomic-store-6.c execution test
    +UNSUPPORTED: gcc.dg/atomic-store-6.c

    -PASS: gcc.dg/simulate-thread/atomic-load-int128.c   -O0 -g  (test for 
excess errors)
    -PASS: gcc.dg/simulate-thread/atomic-load-int128.c   -O0 -g  thread 
simulation test
    +UNSUPPORTED: gcc.dg/simulate-thread/atomic-load-int128.c   -O0 -g 
    -PASS: gcc.dg/simulate-thread/atomic-load-int128.c   -O2 -g  (test for 
excess errors)
    -PASS: gcc.dg/simulate-thread/atomic-load-int128.c   -O2 -g  thread 
simulation test
    +UNSUPPORTED: gcc.dg/simulate-thread/atomic-load-int128.c   -O2 -g 
    -PASS: gcc.dg/simulate-thread/atomic-load-int128.c   -O3 -g  (test for 
excess errors)
    -PASS: gcc.dg/simulate-thread/atomic-load-int128.c   -O3 -g  thread 
simulation test
    +UNSUPPORTED: gcc.dg/simulate-thread/atomic-load-int128.c   -O3 -g 

    -PASS: gcc.dg/simulate-thread/atomic-other-int128.c   -O0 -g  (test for 
excess errors)
    -PASS: gcc.dg/simulate-thread/atomic-other-int128.c   -O0 -g  thread 
simulation test
    +UNSUPPORTED: gcc.dg/simulate-thread/atomic-other-int128.c   -O0 -g 
    -PASS: gcc.dg/simulate-thread/atomic-other-int128.c   -O2 -g  (test for 
excess errors)
    -PASS: gcc.dg/simulate-thread/atomic-other-int128.c   -O2 -g  thread 
simulation test
    +UNSUPPORTED: gcc.dg/simulate-thread/atomic-other-int128.c   -O2 -g 
    -PASS: gcc.dg/simulate-thread/atomic-other-int128.c   -O3 -g  (test for 
excess errors)
    -PASS: gcc.dg/simulate-thread/atomic-other-int128.c   -O3 -g  thread 
simulation test
    +UNSUPPORTED: gcc.dg/simulate-thread/atomic-other-int128.c   -O3 -g 


Grüße
 Thomas

Reply via email to