On 06/05/2026 14:39, Tamar Christina wrote:
> > -----Original Message-----
> > From: Alex Coplan <[email protected]>
> > Sent: 06 May 2026 14:15
> > To: Tamar Christina <[email protected]>
> > Cc: [email protected]; nd <[email protected]>; Richard Earnshaw
> > <[email protected]>; [email protected];
> > [email protected]; Wilco Dijkstra
> > <[email protected]>; Alice Carlotti <[email protected]>
> > Subject: Re: [PATCH]AArch64: Turn on GPR narrowing pass by default
> >
> > On 06/05/2026 14:00, Tamar Christina wrote:
> > > This turns on the GPR narrowing pass for all AArch64 targets.
> >
> > In principle this sounds good, although maybe it should go in after
> > Soumya's fix for PR124895 to minimize noise for folks that are testing
> > the trunk.
>
> Sure, I'll wait for that fix to be committed.
>
> >
> > >
> > > Bootstrapped Regtested on aarch64-none-linux-gnu and no issues.
> > >
> > > Any objections?
> > >
> > > Thanks,
> > > Tamar
> > >
> > > gcc/ChangeLog:
> > >
> > > * config/aarch64/aarch64-tuning-flags.def
> > > (AARCH64_EXTRA_TUNE_BASE): Add
> > AARCH64_EXTRA_TUNE_NARROW_GP_WRITES.
> > >
> > > ---
> > > diff --git a/gcc/config/aarch64/aarch64-tuning-flags.def
> > b/gcc/config/aarch64/aarch64-tuning-flags.def
> > > index
> > 882daa4b4312039f96dcde1295179be3ab3da0d0..058dadecccaac458e30a
> > 6585b558581a7bef6f54 100644
> > > --- a/gcc/config/aarch64/aarch64-tuning-flags.def
> > > +++ b/gcc/config/aarch64/aarch64-tuning-flags.def
> > > @@ -67,7 +67,8 @@ AARCH64_EXTRA_TUNING_OPTION
> > ("cheap_fpmr_write", CHEAP_FPMR_WRITE)
> > >
> > > /* Baseline tuning settings suitable for all modern cores. */
> > > #define AARCH64_EXTRA_TUNE_BASE
> > (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND \
> > > - |
> > AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA)
> > > + |
> > AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA \
> > > + |
> > AARCH64_EXTRA_TUNE_NARROW_GP_WRITES)
> >
> > Doesn't this render the tuning flag obsolete? Presumably we could remove
> > the flag entirely and instead just adjust the default to 1 for
> > -mnarrow-gp-writes in aarch64.opt (simplifying the logic in
> > pass_narrow_gp_writes::gate accordingly)?
>
> I think we should remove `-mnarrow-gp-writes` entirely. With it on by default
> It can be disabled with the pass manager's standard
> -fdisable-rtl-narrow_gp_writes
> so there's no need to the target option anymore.
I don't think the -m option can just be removed, since it is already present in
the GCC 16 release.
>
> This would also be more inline with other generic passes. Or do you see a
> value in
> having it?
>
> >
> > Or would you prefer to keep it so that the pass can be turned off for
> > particular cores if required / to minimize churn in case a reversion is
> > needed?
> >
>
> I wanted to keep a way to disable it since I don't know if it'll do anything
> weird on partner cores. So I think I'd like the tune for now, but when/if
> this moves to a middle-end pass to drop it.
That's fair enough, let's keep the tune flag in that case, so the original patch
is OK from my POV.
Thanks,
Alex
>
> So I'll respin dropping the `-m` flag if you agree.
>
> Thanks,
> Tamar
>
> > Thanks,
> > Alex
> >
> > >
> > > /* Enables dispatch scheduling. */
> > > AARCH64_EXTRA_TUNING_OPTION ("dispatch_sched", DISPATCH_SCHED)
> > >
> > >
> > > --
> >
> > > diff --git a/gcc/config/aarch64/aarch64-tuning-flags.def
> > b/gcc/config/aarch64/aarch64-tuning-flags.def
> > > index
> > 882daa4b4312039f96dcde1295179be3ab3da0d0..058dadecccaac458e30a
> > 6585b558581a7bef6f54 100644
> > > --- a/gcc/config/aarch64/aarch64-tuning-flags.def
> > > +++ b/gcc/config/aarch64/aarch64-tuning-flags.def
> > > @@ -67,7 +67,8 @@ AARCH64_EXTRA_TUNING_OPTION
> > ("cheap_fpmr_write", CHEAP_FPMR_WRITE)
> > >
> > > /* Baseline tuning settings suitable for all modern cores. */
> > > #define AARCH64_EXTRA_TUNE_BASE
> > (AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND \
> > > - |
> > AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA)
> > > + |
> > AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA \
> > > + |
> > AARCH64_EXTRA_TUNE_NARROW_GP_WRITES)
> > >
> > > /* Enables dispatch scheduling. */
> > > AARCH64_EXTRA_TUNING_OPTION ("dispatch_sched", DISPATCH_SCHED)
> > >
>