https://gcc.gnu.org/g:6d97581286030449420dc4ee79612dd256067e2c

commit r17-2277-g6d97581286030449420dc4ee79612dd256067e2c
Author: Jovan Dmitrovic <[email protected]>
Date:   Thu Jul 9 07:31:17 2026 -0600

    ivopts: Set register pressure cost to zero if there are enough registers.
    
    In function ivopts_estimate_reg_pressure, return zero if there are
    enough registers available so that spilling is not necessary.
    
    gcc/ChangeLog:
    
            * tree-ssa-loop-ivopts.cc (ivopts_estimate_reg_pressure):
            Return zero if there are enough registers to store new
            invariants and induction variables.
    
    Suggested-by:  Richard Biener <[email protected]>
    Signed-off-by: Jovan Dmitrović <[email protected]>
    Signed-off-by: Djordje Todorović <[email protected]>
    Signed-off-by: Chao-Ying Fu <[email protected]>
    Signed-off-by: Radosav Krunić <[email protected]>

Diff:
---
 gcc/tree-ssa-loop-ivopts.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/tree-ssa-loop-ivopts.cc b/gcc/tree-ssa-loop-ivopts.cc
index f8dfc77de4ae..55756c2d90db 100644
--- a/gcc/tree-ssa-loop-ivopts.cc
+++ b/gcc/tree-ssa-loop-ivopts.cc
@@ -6094,7 +6094,7 @@ ivopts_estimate_reg_pressure (struct ivopts_data *data, 
unsigned n_invs,
 
   /* If we have enough registers.  */
   if (regs_needed + target_res_regs < available_regs)
-    cost = n_new;
+    cost = 0;
   /* If close to running out of registers, try to preserve them.  */
   else if (regs_needed <= available_regs)
     cost = target_reg_cost [speed] * regs_needed;

Reply via email to