mbox series

[0/19,GCC-8] aarch64: Backport outline atomics

Message ID d7762a8a-c008-87be-8762-fe368b3848a0@arm.com
Headers show
Series aarch64: Backport outline atomics | expand

Message

Andre Vieira (lists) April 16, 2020, 12:24 p.m. UTC
Hi,

This series backports all the patches and fixes regarding outline 
atomics to the gcc-8 branch.

Bootstrapped the series for aarch64-linux-gnu and regression tested.
Is this OK for gcc-8?

Andre Vieira (19):
aarch64: Add early clobber for aarch64_store_exclusive
aarch64: Simplify LSE cas generation
aarch64: Improve cas generation
aarch64: Improve swp generation
aarch64: Improve atomic-op lse generation
aarch64: Remove early clobber from ATOMIC_LDOP scratch
aarch64: Extend %R for integer registers
aarch64: Implement TImode compare-and-swap
aarch64: Tidy aarch64_split_compare_and_swap
aarch64: Add out-of-line functions for LSE atomics
Add visibility to libfunc constructors
aarch64: Implement -moutline-atomics
Aarch64: Fix shrinkwrapping interactions with atomics (PR92692)
aarch64: Fix store-exclusive in load-operate LSE helpers
aarch64: Configure for sys/auxv.h in libgcc for lse-init.c
aarch64: Fix up aarch64_compare_and_swaphi pattern [PR94368]
aarch64: Fix bootstrap with old binutils [PR93053]
aarch64: Fix ICE due to aarch64_gen_compare_reg_maybe_ze [PR94435]
re PR target/90724 (ICE with __sync_bool_compare_and_swap with 
-march=armv8.2-a+sve)

Comments

Andre Vieira (lists) April 16, 2020, 1:56 p.m. UTC | #1
On 16/04/2020 13:24, Andre Vieira (lists) wrote:
> Hi,
>
> This series backports all the patches and fixes regarding outline 
> atomics to the gcc-8 branch.
>
> Bootstrapped the series for aarch64-linux-gnu and regression tested.
> Is this OK for gcc-8?
>
> Andre Vieira (19):
> aarch64: Add early clobber for aarch64_store_exclusive
> aarch64: Simplify LSE cas generation
> aarch64: Improve cas generation
> aarch64: Improve swp generation
> aarch64: Improve atomic-op lse generation
> aarch64: Remove early clobber from ATOMIC_LDOP scratch
> aarch64: Extend %R for integer registers
> aarch64: Implement TImode compare-and-swap
> aarch64: Tidy aarch64_split_compare_and_swap
> aarch64: Add out-of-line functions for LSE atomics
> Add visibility to libfunc constructors
> aarch64: Implement -moutline-atomics
> Aarch64: Fix shrinkwrapping interactions with atomics (PR92692)
> aarch64: Fix store-exclusive in load-operate LSE helpers
> aarch64: Configure for sys/auxv.h in libgcc for lse-init.c
> aarch64: Fix up aarch64_compare_and_swaphi pattern [PR94368]
> aarch64: Fix bootstrap with old binutils [PR93053]
> aarch64: Fix ICE due to aarch64_gen_compare_reg_maybe_ze [PR94435]
> re PR target/90724 (ICE with __sync_bool_compare_and_swap with 
> -march=armv8.2-a+sve)
>
Hmm something went wrong when sending these, I had tried to make the 
N/19 patches reply to this one, but failed and also I was pretty sure I 
had CC'ed Kyrill and Richard S.

Adding them now.
Kyrylo Tkachov April 20, 2020, 8:42 a.m. UTC | #2
Hi Andre,

> -----Original Message-----
> From: Andre Vieira (lists) <andre.simoesdiasvieira@arm.com>
> Sent: 16 April 2020 13:24
> To: gcc-patches@gcc.gnu.org
> Cc: Kyrylo Tkachov <Kyrylo.Tkachov@arm.com>; Richard Sandiford
> <Richard.Sandiford@arm.com>; spop@amazon.com
> Subject: [PATCH 0/19][GCC-8] aarch64: Backport outline atomics
> 
> Hi,
> 
> This series backports all the patches and fixes regarding outline
> atomics to the gcc-8 branch.
> 
> Bootstrapped the series for aarch64-linux-gnu and regression tested.
> Is this OK for gcc-8?
> 
> Andre Vieira (19):
> aarch64: Add early clobber for aarch64_store_exclusive
> aarch64: Simplify LSE cas generation
> aarch64: Improve cas generation
> aarch64: Improve swp generation
> aarch64: Improve atomic-op lse generation
> aarch64: Remove early clobber from ATOMIC_LDOP scratch
> aarch64: Extend %R for integer registers
> aarch64: Implement TImode compare-and-swap
> aarch64: Tidy aarch64_split_compare_and_swap
> aarch64: Add out-of-line functions for LSE atomics
> Add visibility to libfunc constructors
> aarch64: Implement -moutline-atomics
> Aarch64: Fix shrinkwrapping interactions with atomics (PR92692)
> aarch64: Fix store-exclusive in load-operate LSE helpers
> aarch64: Configure for sys/auxv.h in libgcc for lse-init.c
> aarch64: Fix up aarch64_compare_and_swaphi pattern [PR94368]
> aarch64: Fix bootstrap with old binutils [PR93053]

Thanks for putting these together.
Before they can go in we need to get this fix for PR93053 into GCC 9.
Can you please test it on that branch to help Jakub out?
Thanks,
Kyrill

> aarch64: Fix ICE due to aarch64_gen_compare_reg_maybe_ze [PR94435]
> re PR target/90724 (ICE with __sync_bool_compare_and_swap with
> -march=armv8.2-a+sve)
Andre Vieira (lists) April 22, 2020, 8:26 a.m. UTC | #3
On 20/04/2020 09:42, Kyrylo Tkachov wrote:
> Hi Andre,
>
>> -----Original Message-----
>> From: Andre Vieira (lists) <andre.simoesdiasvieira@arm.com>
>> Sent: 16 April 2020 13:24
>> To: gcc-patches@gcc.gnu.org
>> Cc: Kyrylo Tkachov <Kyrylo.Tkachov@arm.com>; Richard Sandiford
>> <Richard.Sandiford@arm.com>; spop@amazon.com
>> Subject: [PATCH 0/19][GCC-8] aarch64: Backport outline atomics
>>
>> Hi,
>>
>> This series backports all the patches and fixes regarding outline
>> atomics to the gcc-8 branch.
>>
>> Bootstrapped the series for aarch64-linux-gnu and regression tested.
>> Is this OK for gcc-8?
>>
>> Andre Vieira (19):
>> aarch64: Add early clobber for aarch64_store_exclusive
>> aarch64: Simplify LSE cas generation
>> aarch64: Improve cas generation
>> aarch64: Improve swp generation
>> aarch64: Improve atomic-op lse generation
>> aarch64: Remove early clobber from ATOMIC_LDOP scratch
>> aarch64: Extend %R for integer registers
>> aarch64: Implement TImode compare-and-swap
>> aarch64: Tidy aarch64_split_compare_and_swap
>> aarch64: Add out-of-line functions for LSE atomics
>> Add visibility to libfunc constructors
>> aarch64: Implement -moutline-atomics
>> Aarch64: Fix shrinkwrapping interactions with atomics (PR92692)
>> aarch64: Fix store-exclusive in load-operate LSE helpers
>> aarch64: Configure for sys/auxv.h in libgcc for lse-init.c
>> aarch64: Fix up aarch64_compare_and_swaphi pattern [PR94368]
>> aarch64: Fix bootstrap with old binutils [PR93053]
> Thanks for putting these together.
> Before they can go in we need to get this fix for PR93053 into GCC 9.
> Can you please test it on that branch to help Jakub out?
> Thanks,
> Kyrill
Bootstrapped and regression tested the PR93053 fix from Jakub on gcc-9 
branch and it looks good.
>> aarch64: Fix ICE due to aarch64_gen_compare_reg_maybe_ze [PR94435]
>> re PR target/90724 (ICE with __sync_bool_compare_and_swap with
>> -march=armv8.2-a+sve)
>
Kyrylo Tkachov April 22, 2020, 9:59 a.m. UTC | #4
Hi Andre,

> -----Original Message-----
> From: Andre Vieira (lists) <andre.simoesdiasvieira@arm.com>
> Sent: 22 April 2020 09:26
> To: Kyrylo Tkachov <Kyrylo.Tkachov@arm.com>; gcc-patches@gcc.gnu.org
> Cc: Richard Sandiford <Richard.Sandiford@arm.com>; spop@amazon.com
> Subject: Re: [PATCH 0/19][GCC-8] aarch64: Backport outline atomics
> 
> 
> On 20/04/2020 09:42, Kyrylo Tkachov wrote:
> > Hi Andre,
> >
> >> -----Original Message-----
> >> From: Andre Vieira (lists) <andre.simoesdiasvieira@arm.com>
> >> Sent: 16 April 2020 13:24
> >> To: gcc-patches@gcc.gnu.org
> >> Cc: Kyrylo Tkachov <Kyrylo.Tkachov@arm.com>; Richard Sandiford
> >> <Richard.Sandiford@arm.com>; spop@amazon.com
> >> Subject: [PATCH 0/19][GCC-8] aarch64: Backport outline atomics
> >>
> >> Hi,
> >>
> >> This series backports all the patches and fixes regarding outline
> >> atomics to the gcc-8 branch.
> >>
> >> Bootstrapped the series for aarch64-linux-gnu and regression tested.
> >> Is this OK for gcc-8?
> >>
> >> Andre Vieira (19):
> >> aarch64: Add early clobber for aarch64_store_exclusive
> >> aarch64: Simplify LSE cas generation
> >> aarch64: Improve cas generation
> >> aarch64: Improve swp generation
> >> aarch64: Improve atomic-op lse generation
> >> aarch64: Remove early clobber from ATOMIC_LDOP scratch
> >> aarch64: Extend %R for integer registers
> >> aarch64: Implement TImode compare-and-swap
> >> aarch64: Tidy aarch64_split_compare_and_swap
> >> aarch64: Add out-of-line functions for LSE atomics
> >> Add visibility to libfunc constructors
> >> aarch64: Implement -moutline-atomics
> >> Aarch64: Fix shrinkwrapping interactions with atomics (PR92692)
> >> aarch64: Fix store-exclusive in load-operate LSE helpers
> >> aarch64: Configure for sys/auxv.h in libgcc for lse-init.c
> >> aarch64: Fix up aarch64_compare_and_swaphi pattern [PR94368]
> >> aarch64: Fix bootstrap with old binutils [PR93053]
> > Thanks for putting these together.
> > Before they can go in we need to get this fix for PR93053 into GCC 9.
> > Can you please test it on that branch to help Jakub out?
> > Thanks,
> > Kyrill
> Bootstrapped and regression tested the PR93053 fix from Jakub on gcc-9
> branch and it looks good.

Thanks, can you please apply the patch to the gcc-9 branch then? (making sure the PR markers are there in the commit message so that Bugzilla is updated).
We can then proceed with the GCC 8 backports.

Kyrill

> >> aarch64: Fix ICE due to aarch64_gen_compare_reg_maybe_ze [PR94435]
> >> re PR target/90724 (ICE with __sync_bool_compare_and_swap with
> >> -march=armv8.2-a+sve)
> >
Kyrylo Tkachov April 22, 2020, 3:06 p.m. UTC | #5
> -----Original Message-----
> From: Kyrylo Tkachov
> Sent: 22 April 2020 11:00
> To: Andre Vieira (lists) <andre.simoesdiasvieira@arm.com>; gcc-
> patches@gcc.gnu.org
> Cc: Richard Sandiford <Richard.Sandiford@arm.com>; spop@amazon.com
> Subject: RE: [PATCH 0/19][GCC-8] aarch64: Backport outline atomics
> 
> Hi Andre,
> 
> > -----Original Message-----
> > From: Andre Vieira (lists) <andre.simoesdiasvieira@arm.com>
> > Sent: 22 April 2020 09:26
> > To: Kyrylo Tkachov <Kyrylo.Tkachov@arm.com>; gcc-patches@gcc.gnu.org
> > Cc: Richard Sandiford <Richard.Sandiford@arm.com>; spop@amazon.com
> > Subject: Re: [PATCH 0/19][GCC-8] aarch64: Backport outline atomics
> >
> >
> > On 20/04/2020 09:42, Kyrylo Tkachov wrote:
> > > Hi Andre,
> > >
> > >> -----Original Message-----
> > >> From: Andre Vieira (lists) <andre.simoesdiasvieira@arm.com>
> > >> Sent: 16 April 2020 13:24
> > >> To: gcc-patches@gcc.gnu.org
> > >> Cc: Kyrylo Tkachov <Kyrylo.Tkachov@arm.com>; Richard Sandiford
> > >> <Richard.Sandiford@arm.com>; spop@amazon.com
> > >> Subject: [PATCH 0/19][GCC-8] aarch64: Backport outline atomics
> > >>
> > >> Hi,
> > >>
> > >> This series backports all the patches and fixes regarding outline
> > >> atomics to the gcc-8 branch.
> > >>
> > >> Bootstrapped the series for aarch64-linux-gnu and regression tested.
> > >> Is this OK for gcc-8?
> > >>
> > >> Andre Vieira (19):
> > >> aarch64: Add early clobber for aarch64_store_exclusive
> > >> aarch64: Simplify LSE cas generation
> > >> aarch64: Improve cas generation
> > >> aarch64: Improve swp generation
> > >> aarch64: Improve atomic-op lse generation
> > >> aarch64: Remove early clobber from ATOMIC_LDOP scratch
> > >> aarch64: Extend %R for integer registers
> > >> aarch64: Implement TImode compare-and-swap
> > >> aarch64: Tidy aarch64_split_compare_and_swap
> > >> aarch64: Add out-of-line functions for LSE atomics
> > >> Add visibility to libfunc constructors
> > >> aarch64: Implement -moutline-atomics
> > >> Aarch64: Fix shrinkwrapping interactions with atomics (PR92692)
> > >> aarch64: Fix store-exclusive in load-operate LSE helpers
> > >> aarch64: Configure for sys/auxv.h in libgcc for lse-init.c
> > >> aarch64: Fix up aarch64_compare_and_swaphi pattern [PR94368]
> > >> aarch64: Fix bootstrap with old binutils [PR93053]
> > > Thanks for putting these together.
> > > Before they can go in we need to get this fix for PR93053 into GCC 9.
> > > Can you please test it on that branch to help Jakub out?
> > > Thanks,
> > > Kyrill
> > Bootstrapped and regression tested the PR93053 fix from Jakub on gcc-9
> > branch and it looks good.
> 
> Thanks, can you please apply the patch to the gcc-9 branch then? (making
> sure the PR markers are there in the commit message so that Bugzilla is
> updated).
> We can then proceed with the GCC 8 backports.

Now that that's done, this is ok to commit to the GCC 8 branch.
Can you please prepare entries for the appropriate changes.html pages for the GCC 9 and 8 releases to indicate the new support?
Thanks,
Kyrill

> 
> Kyrill
> 
> > >> aarch64: Fix ICE due to aarch64_gen_compare_reg_maybe_ze [PR94435]
> > >> re PR target/90724 (ICE with __sync_bool_compare_and_swap with
> > >> -march=armv8.2-a+sve)
> > >