[PATCH, rs6000] Improve atomic_load/store code gen for Power8 TI mode
Bill Schmidt
wschmidt@linux.vnet.ibm.com
Wed Apr 9 18:56:00 GMT 2014
On Tue, 2014-04-08 at 13:39 -0500, Pat Haugen wrote:
> On 03/25/2014 11:20 AM, Pat Haugen wrote:
> > Power8 can use lq/stq instructions for TI mode atomic_load/store.
> > Bootstrap/regtest with no new failures. Ok for trunk and 4.8 (once
> > bootstrap/regtest finishes)?
> >
> > -Pat
> >
> >
> > 2014-03-25 Pat Haugen <pthaugen@us.ibm.com>
> >
> > * config/rs6000/sync.md (AINT mode_iterator): Move definition.
> > (loadsync_<mode>): Change mode.
> > (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
> > (load_quadpti, store_quadpti): New.
> > * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
> >
> > gcc/testsuite:
> > * gcc.target/powerpc/atomic_load_store-p8.c: New.
>
> Updated patch which was approved off list and I have committed.
>
Unfortunately this broke bootstrap on powerpc64le-linux-gnu on 4.8:
checking for suffix of executables... /home/wschmidt/gcc/gcc-4_8-base/libatomic\
/load_n.c: In function 'libat_load_16':
/home/wschmidt/gcc/gcc-4_8-base/libatomic/load_n.c:58:31: error: invalid failur\
e memory model for '__atomic_compare_exchange'
atomic_compare_exchange_n (mptr, &t, 0, true,
^
make[4]: *** [load_16_.lo] Error 1
make[4]: *** Waiting for unfinished jobs....
Thanks,
Bill
More information about the Gcc-patches
mailing list