https://gcc.gnu.org/g:59ff32799814ab6ce7f7da7a026470cea2a13084

commit 59ff32799814ab6ce7f7da7a026470cea2a13084
Author: Surya Kumari Jangala <[email protected]>
Date:   Wed Jun 10 11:45:31 2026 -0500

    rs6000: Make DMR registers as call-used
    
    DMR regs are call-used registers by convention. But they were
    erroneously denoted as call-saved. This led to incorrect cost
    computations in assign_hard_reg() resulting in VSX registers being
    assigned to allocnos having TDO mode. Assigning VSX registers to TDO
    mode allocnos will result in the LRA generating extra instructions to
    spill/restore DMR registers to/from VSX registers. This patch changes
    CALL_REALLY_USED_REGISTERS to indicate DMR registers as call-used.
    
    2026-06-10  Surya Kumari Jangala  <[email protected]>

Diff:
---
 gcc/config/rs6000/rs6000.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 33669b2f5606..1eff9d2c48fd 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -832,7 +832,7 @@ enum data_align { align_abi, align_opt, align_both };
    /* vrsave vscr sfp */                          \
    0, 0, 0,                                       \
    /* Dense math registers.  */                           \
-   0, 0, 0, 0, 0, 0, 0, 0                         \
+   1, 1, 1, 1, 1, 1, 1, 1                         \
 }
 
 #define TOTAL_ALTIVEC_REGS     (LAST_ALTIVEC_REGNO - FIRST_ALTIVEC_REGNO + 1)

Reply via email to