Hi Sebastian,

> -----Original Message-----
> From: Pop, Sebastian <s...@amazon.com>
> Sent: 01 April 2020 15:32
> To: Kyrylo Tkachov <kyrylo.tkac...@arm.com>
> Cc: Wilco Dijkstra <wilco.dijks...@arm.com>; richard.hender...@linaro.org;
> gcc-patches@gcc.gnu.org
> Subject: Re: [AArch64] Backporting -moutline-atomics to gcc 9.x and 8.x
> 
> Thanks Kyrill!  I will be happy to test the gcc-8 back-port of the patches.
> 
> We would also need to back-port the patches to gcc-7.
> I hope it is ok to commit the changes to the gcc-7 branch even if it is not a
> maintained branch.

I don't think that will work. Given that the branch is not maintained there 
won't be any more point releases off of it.
Of course, if you have your own gcc-7-based vendor branch that's another 
matter...
Thanks,
Kyrill

> 
> Sebastian
> 
> On 4/1/20, 9:27 AM, "Kyrylo Tkachov" <kyrylo.tkac...@arm.com> wrote:
> 
>     CAUTION: This email originated from outside of the organization. Do not
> click links or open attachments unless you can confirm the sender and know
> the content is safe.
> 
> 
> 
>     Adding gcc-patches as I had somehow deleted it from the addresses...
> 
>     > -----Original Message-----
>     > From: Kyrylo Tkachov
>     > Sent: 01 April 2020 15:23
>     > To: Pop, Sebastian <s...@amazon.com>
>     > Cc: Wilco Dijkstra <wilco.dijks...@arm.com>;
> richard.hender...@linaro.org
>     > Subject: RE: [AArch64] Backporting -moutline-atomics to gcc 9.x and 8.x
>     >
>     > Hi Sebastian,
>     >
>     > > -----Original Message-----
>     > > From: Gcc-patches <gcc-patches-boun...@gcc.gnu.org> On Behalf Of
> Pop,
>     > > Sebastian via Gcc-patches
>     > > Sent: 31 March 2020 16:47
>     > > To: Kyrill Tkachov <kyrylo.tkac...@foss.arm.com>;
>     > > gcc-patches@gcc.gnu.org
>     > > Cc: Wilco Dijkstra <wilco.dijks...@arm.com>;
>     > > richard.hender...@linaro.org
>     > > Subject: Re: [AArch64] Backporting -moutline-atomics to gcc 9.x and
>     > > 8.x
>     > >
>     > > Ping, can we have the -moutline-atomics patches committed to the gcc-
> 9
>     > > branch?
>     >
>     > Thanks for testing the patches.
>     >
>     > >
>     > > Thanks,
>     > > Sebastian
>     > >
>     > > On 3/24/20, 7:24 PM, "Pop, Sebastian" <s...@amazon.com> wrote:
>     > >
>     > >     Hi Kyrill,
>     > >
>     > >     Thanks for pointing out the two missing bug fixes.
>     > >     Please see attached all the back-ported patches.
>     > >     All the patches from trunk applied cleanly with no conflicts
>     > > (except for the ChangeLog files) to the gcc-9 branch.
>     > >     An up to date gcc-9 branch on which I applied the attached patches
>     > > has passed bootstrap on aarch64-linux (Graviton2 with 64 N1 cores)
> and
>     > > make check with no extra fails.
>     > >     Kyrill, could you please commit the attached patches to the gcc-9
> branch?
>     >
>     > This series also needs Jakub's recent fix:
> https://gcc.gnu.org/pipermail/gcc-
>     > patches/2020-March/542952.html
>     > I've tested this together with the rest and committed the whole series 
> to
> the
>     > gcc-9 branch.
>     >
>     > >
>     > >     As we still don't have a copyright assignment on file, would it be
>     > > possible for ARM to finish the backport to the gcc-8 branch of these
>     > > patches and the atomics cleanup patches mentioned below?
>     >
>     > I can help with that, but any help with testing the patch set would be
>     > appreciated.
>     > Thanks,
>     > Kyrill
>     >
>     > >
>     > >     I did a `git log config/aarch64/atomics.md` and there is a
>     > > follow-up patch to the atomics cleanup patches:
>     > >
>     > >     commit e21679a8bb17aac603b8704891e60ac502200629
>     > >     Author: Jakub Jelinek <ja...@redhat.com>
>     > >     Date:   Wed Nov 21 17:41:03 2018 +0100
>     > >
>     > >         re PR target/87839 (ICE in final_scan_insn_1, at final.c:3070)
>     > >
>     > >                 PR target/87839
>     > >                 * config/aarch64/atomics.md
>     > > (@aarch64_compare_and_swap<mode>): Use
>     > >                 rIJ constraint for aarch64_plus_operand rather than 
> rn.
>     > >
>     > >                 * gcc.target/aarch64/pr87839.c: New test.
>     > >
>     > >         From-SVN: r266346
>     > >
>     > >     That is fixing code modified in this cleanup patch:
>     > >
>     > >     commit d400fda3a8c3330f77eb9d51874f5482d3819a9f
>     > >     Author: Richard Henderson <richard.hender...@linaro.org>
>     > >     Date:   Wed Oct 31 09:42:39 2018 +0000
>     > >
>     > >         aarch64: Improve cas generation
>     > >
>     > >
>     > >     Thanks,
>     > >     Sebastian
>     > >
>     > >
>     > >     On 3/11/20, 5:11 AM, "Kyrill Tkachov"
>     > > <kyrylo.tkac...@foss.arm.com>
>     > > wrote:
>     > >
>     > >         CAUTION: This email originated from outside of the
>     > > organization. Do not click links or open attachments unless you can
>     > > confirm the sender and know the content is safe.
>     > >
>     > >
>     > >
>     > >         Hi Sebastian,
>     > >
>     > >         On 3/9/20 9:47 PM, Pop, Sebastian wrote:
>     > >         > Hi,
>     > >         >
>     > >         > Please see attached the patches to add -moutline-atomics to
>     > > the gcc-9 branch.
>     > >         > Tested on graviton2 aarch64-linux with bootstrap and
>     > >         > `make check` passes with no new fails.
>     > >         > Tested `make check` on glibc built with gcc-9 with and
>     > > without "- moutline-atomics"
>     > >         > and CFLAGS=" -O2 -g -fno-stack-protector -U_FORTIFY_SOURCE".
>     > >         >
>     > >         > Ok to commit to gcc-9 branch?
>     > >
>     > >         Since this feature enables backwards-compatible deployment of
> LSE
>     > >         atomics, I'd support that.
>     > >
>     > >         That is okay with me in principle after GCC 9.3 is released 
> (the
> branch
>     > >         is currently frozen).
>     > >
>     > >         However, there have been a few follow-up patches to fix some
> bugs
>     > >         revealed by testing.
>     > >
>     > >         https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91833
>     > >
>     > >         and
>     > >
>     > >         https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91834
>     > >
>     > >         come to mind.
>     > >
>     > >         Can you please make sure the fixes for those are included as 
> well?
>     > >
>     > >
>     > >         >
>     > >         > Does this mechanical `git am *.patch` require a copyright
> assignment?
>     > >         > I am still working with my employer on getting the FSF
>     > > assignment signed.
>     > >         >
>     > >         > Thanks,
>     > >         > Sebastian
>     > >         >
>     > >         > PS: For gcc-8 backports there are 5 cleanup and improvement
>     > patches
>     > >         > that are needed for -moutline-atomics patches to apply 
> cleanly.
>     > >         > Should these patches be back-ported in the same time as the
>     > > flag patches,
>     > >         > or should I update the patches to apply to the older code 
> base?
>     > >
>     > >         Hmm... normally I'd be for them. In this case I'd want to 
> make sure
>     > that
>     > >         there aren't any fallout fixes that we're missing.
>     > >
>     > >         Did these patches have any bug reports against them?
>     > >
>     > >         Thanks,
>     > >
>     > >         Kyrill
>     > >
>     > >
>     > >         > Here is the list of the extra patches:
>     > >         >
>     > >         >  From 77f33f44baf24c22848197aa80962c003dd7b3e2 Mon Sep
> 17
>     > > 00:00:00 2001
>     > >         > From: Richard Henderson <richard.hender...@linaro.org>
>     > >         > Date: Wed, 31 Oct 2018 09:29:29 +0000
>     > >         > Subject: [PATCH] aarch64: Simplify LSE cas generation
>     > >         >
>     > >         > The cas insn is a single insn, and if expanded properly 
> need not
>     > >         > be split after reload.  Use the proper inputs for the insn.
>     > >         >
>     > >         >          * config/aarch64/aarch64.c
>     > > (aarch64_expand_compare_and_swap):
>     > >         >          Force oldval into the rval register for 
> TARGET_LSE; emit the
>     > > compare
>     > >         >          during initial expansion so that it may be deleted 
> if unused.
>     > >         >          (aarch64_gen_atomic_cas): Remove.
>     > >         >          * config/aarch64/atomics.md
>     > > (@aarch64_compare_and_swap<SHORT>_lse):
>     > >         >          Change =&r to +r for operand 0; use match_dup for
> operand 2;
>     > >         >          remove is_weak and mod_f operands as unused.  Drop 
> the
> split
>     > >         >          and merge with...
>     > >         >          (@aarch64_atomic_cas<SHORT>): ... this pattern's 
> output;
>     > > remove.
>     > >         >          (@aarch64_compare_and_swap<GPI>_lse): Similarly.
>     > >         >          (@aarch64_atomic_cas<GPI>): Similarly.
>     > >         >
>     > >         > From-SVN: r265656
>     > >         >
>     > >         >  From d400fda3a8c3330f77eb9d51874f5482d3819a9f Mon Sep
> 17
>     > > 00:00:00 2001
>     > >         > From: Richard Henderson <richard.hender...@linaro.org>
>     > >         > Date: Wed, 31 Oct 2018 09:42:39 +0000
>     > >         > Subject: [PATCH] aarch64: Improve cas generation
>     > >         >
>     > >         > Do not zero-extend the input to the cas for subword 
> operations;
>     > >         > instead, use the appropriate zero-extending compare insns.
>     > >         > Correct the predicates and constraints for immediate
>     > > expected operand.
>     > >         >
>     > >         >          * config/aarch64/aarch64.c
>     > > (aarch64_gen_compare_reg_maybe_ze): New.
>     > >         >          (aarch64_split_compare_and_swap): Use it.
>     > >         >          (aarch64_expand_compare_and_swap): Likewise.  
> Remove
>     > > convert_modes;
>     > >         >          test oldval against the proper predicate.
>     > >         >          * config/aarch64/atomics.md
>     > > (@atomic_compare_and_swap<ALLI>):
>     > >         >          Use nonmemory_operand for expected.
>     > >         >          (cas_short_expected_pred): New.
>     > >         >          (@aarch64_compare_and_swap<SHORT>): Use it; use 
> "rn"
> not
>     > > "rI" to match.
>     > >         >          (@aarch64_compare_and_swap<GPI>): Use "rn" not 
> "rI" for
>     > > expected.
>     > >         >          * config/aarch64/predicates.md
> (aarch64_plushi_immediate):
>     > > New.
>     > >         >          (aarch64_plushi_operand): New.
>     > >         >
>     > >         > From-SVN: r265657
>     > >         >
>     > >         >  From 8f5603d363a4e0453d2c38c7103aeb0bdca85c4e Mon Sep
> 17
>     > > 00:00:00 2001
>     > >         > From: Richard Henderson <richard.hender...@linaro.org>
>     > >         > Date: Wed, 31 Oct 2018 09:47:21 +0000
>     > >         > Subject: [PATCH] aarch64: Improve swp generation
>     > >         >
>     > >         > Allow zero as an input; fix constraints; avoid unnecessary 
> split.
>     > >         >
>     > >         >          * config/aarch64/aarch64.c 
> (aarch64_emit_atomic_swap):
>     > > Remove.
>     > >         >          (aarch64_gen_atomic_ldop): Don't call it.
>     > >         >          * config/aarch64/atomics.md 
> (atomic_exchange<ALLI>):
>     > >         >          Use aarch64_reg_or_zero.
>     > >         >          (aarch64_atomic_exchange<ALLI>): Likewise.
>     > >         >          (aarch64_atomic_exchange<ALLI>_lse): Remove split;
> remove &
>     > > from
>     > >         >          operand 0; use aarch64_reg_or_zero for input; 
> merge ...
>     > >         >          (@aarch64_atomic_swp<ALLI>): ... this and remove.
>     > >         >
>     > >         > From-SVN: r265659
>     > >         >
>     > >         >  From 7803ec5ee2a547043fb6708a08ddb1361ba91202 Mon Sep
> 17
>     > > 00:00:00 2001
>     > >         > From: Richard Henderson <richard.hender...@linaro.org>
>     > >         > Date: Wed, 31 Oct 2018 09:58:48 +0000
>     > >         > Subject: [PATCH] aarch64: Improve atomic-op lse generation
>     > >         >
>     > >         > Fix constraints; avoid unnecessary split.  Drop the use of 
> the
>     > atomic_op
>     > >         > iterator in favor of the ATOMIC_LDOP iterator; this is
>     > > simplier and more
>     > >         > logical for ldclr aka bic.
>     > >         >
>     > >         >          * config/aarch64/aarch64.c (aarch64_emit_bic): 
> Remove.
>     > >         >          (aarch64_atomic_ldop_supported_p): Remove.
>     > >         >          (aarch64_gen_atomic_ldop): Remove.
>     > >         >          * config/aarch64/atomic.md
> (atomic_<atomic_optab><ALLI>):
>     > >         >          Fully expand LSE operations here.
>     > >         >          (atomic_fetch_<atomic_optab><ALLI>): Likewise.
>     > >         >          (atomic_<atomic_optab>_fetch<ALLI>): Likewise.
>     > >         >          (aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse): Drop
> atomic_op
>     > > iterator
>     > >         >          and use ATOMIC_LDOP instead; use register_operand 
> for
> the
>     > > input;
>     > >         >          drop the split and emit insns directly.
>     > >         >          (aarch64_atomic_fetch_<ATOMIC_LDOP><ALLI>_lse):
> Likewise.
>     > >         >          (aarch64_atomic_<atomic_op>_fetch<ALLI>_lse): 
> Remove.
>     > >         >          (@aarch64_atomic_load<ATOMIC_LDOP><ALLI>): Remove.
>     > >         >
>     > >         > From-SVN: r265660
>     > >         >
>     > >         >  From 53de1ea800db54b47290d578c43892799b66c8dc Mon Sep
> 17
>     > > 00:00:00 2001
>     > >         > From: Richard Henderson <richard.hender...@linaro.org>
>     > >         > Date: Wed, 31 Oct 2018 23:11:22 +0000
>     > >         > Subject: [PATCH] aarch64: Remove early clobber from
>     > > ATOMIC_LDOP scratch
>     > >         >
>     > >         >          * config/aarch64/atomics.md
>     > > (aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse):
>     > >         >          The scratch register need not be early-clobber.  
> Document
> the
>     > > reason
>     > >         >          why we cannot use ST<OP>.
>     > >         >
>     > >         > From-SVN: r265703
>     > >         >
>     > >         >
>     > >         >
>     > >         >
>     > >         >
>     > >         > On 2/27/20, 12:06 PM, "Kyrill Tkachov"
>     > > <kyrylo.tkac...@foss.arm.com>
>     > > wrote:
>     > >         >
>     > >         >      Hi Sebastian,
>     > >         >
>     > >         >      On 2/27/20 4:53 PM, Pop, Sebastian wrote:
>     > >         >      >
>     > >         >      > Hi,
>     > >         >      >
>     > >         >      > is somebody already working on backporting -moutline-
> atomics
>     > to
>     > > gcc
>     > >         >      > 8.x and 9.x branches?
>     > >         >      >
>     > >         >      I'm not aware of such work going on.
>     > >         >
>     > >         >      Thanks,
>     > >         >
>     > >         >      Kyrill
>     > >         >
>     > >         >      > Thanks,
>     > >         >      >
>     > >         >      > Sebastian
>     > >         >      >
>     > >         >
>     > >         >
>     > >
>     > >
>     > >
> 
> 

Reply via email to