diff mbox series

[pushed,PR108754] RA: Use caller save equivalent memory only for LRA

Message ID 8ec50aaf-2b64-8bdf-94ed-726aff75dfda@redhat.com
State New
Headers show
Series [pushed,PR108754] RA: Use caller save equivalent memory only for LRA | expand

Commit Message

Vladimir Makarov Feb. 10, 2023, 5:42 p.m. UTC
The following patch should  solve

   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108754

The patch simply switches off a new optimization for targets using the 
old reload pass.

The patch was successfully bootstrapped on x86-64.
diff mbox series

Patch

commit 7757567358a84c3774cb972350bd7ea299daaa8d
Author: Vladimir N. Makarov <vmakarov@redhat.com>
Date:   Fri Feb 10 12:17:07 2023 -0500

    RA: Use caller save equivalent memory only for LRA
    
    Recently I submitted a patch to reuse memory with constant address for
    caller saves optimization for constant or pure function call.  It
    seems to work only for targets using LRA instead of the old reload
    pass.  So the patch switches off this optimization when the old reload
    pass is used.
    
            PR middle-end/108754
    
    gcc/ChangeLog:
    
            * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
            valid_combine only when ira_use_lra_p is true.

diff --git a/gcc/ira.cc b/gcc/ira.cc
index d0b6ea062e8..9f9af808f63 100644
--- a/gcc/ira.cc
+++ b/gcc/ira.cc
@@ -3773,7 +3773,7 @@  update_equiv_regs (void)
 		    {
 		      note = set_unique_reg_note (insn, REG_EQUIV, replacement);
 		    }
-		  else
+		  else if (ira_use_lra_p)
 		    {
 		      /* We still can use this equivalence for caller save
 			 optimization in LRA.  Mark this.  */