On 7/10/2026 8:43 AM, Alfie Richards 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
I'm seeing light fallout on riscv, but I haven't characterized it yet as
testing weaknesses or a quality of code or not a problem yet. Given
this affects iv costing, I'm not totally surprised at the possible fallout.
jeff