On Fri, Jul 10, 2026 at 4:45 PM Alfie Richards <[email protected]> wrote:
>
> On 09/07/2026 14:32, Jeffrey Law wrote:
> >
> >
> > On 7/9/2026 2:15 AM, Richard Biener wrote:
> >> On Wed, Jun 24, 2026 at 4:28 PM Jovan Dmitrovic
> >> <[email protected]> wrote:
> >>> In function ivopts_estimate_reg_pressure, return zero if there are
> >>> enough registers available so that spilling is not necessary.
> >> This is OK.  And OK to push independently of 2/3 or 3/3.
> >>
> >> It might be contrary to how we deal with available
> >> register costs in the other cases but there's no target cost for
> >> registers when we have enough of them in target_cfgloop.
> >> Assuming zero cost makes as much sense as one, costing
> >> n_new instead of <whatever factor> * regs_needed doesn't,
> >> so the proposed result is strictly better from a logical point.
> >> It's the most extreme, so most likely to show up issues if
> >> there are any.
> > I've pushed this.
> >
> > jeff
>
> I'm seeing some regressions over night when this was pushed. Seemingly
> because we are spilling to stack more, so this is my main suspect at the
> moment.
>
> I will investigate more but so far I see:
>
> - -2.2% on spec2026 749.fotonik3d_r
> - -1.1% on spec2026 782.lbm_r
> - -1.1% on spec2017 510.parest_r
> - -1.3% on spec2026 731.astcenc_r
>
> All on neoverse-v2
>
> And
>
> - -2.7% on spec2017 538.imagick_r
>
> on neoverse-v1

As I noted in the review the patch improves things as to not add/compare
apples and oranges.  It takes a pretty aggressive stance, so some fallout
might be expected.  I do not expect 2/3 or 3/3 to address this part, instead
it will likely make it worse (by also eliding the number-of-IVs biasing).

I suggest to defer deeper analysis to after at least 2/3 (re-ordered from 3/3)
lands.  The other change should mostly affect the high register pressure
case while the one pushed affects "no register pressure" (so it's odd that
you see spilling ...)

Richard.

Reply via email to