This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, rs6000] Improve atomic_load/store code gen for Power8 TI mode
- From: David Edelsohn <dje dot gcc at gmail dot com>
- To: Bill Schmidt <wschmidt at linux dot vnet dot ibm dot com>
- Cc: Pat Haugen <pthaugen at linux dot vnet dot ibm dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 9 Apr 2014 15:56:12 -0400
- Subject: Re: [PATCH, rs6000] Improve atomic_load/store code gen for Power8 TI mode
- Authentication-results: sourceware.org; auth=none
- References: <5331ACD0 dot 7030004 at linux dot vnet dot ibm dot com> <5344426C dot 9080207 at linux dot vnet dot ibm dot com> <1397069760 dot 5401 dot 131 dot camel at gnopaine>
I have reverted this on trunk and asked Bill to revert this on the 4.8
branch. This patch is too risky to apply this close to a freeze for
4.9.
Sorry for the problems.
- David
On Wed, Apr 9, 2014 at 2:56 PM, Bill Schmidt
<wschmidt@linux.vnet.ibm.com> wrote:
> 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
>