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.
