RA: Use caller save equivalent memory only for LRA
authorVladimir N. Makarov <vmakarov@redhat.com>
Fri, 10 Feb 2023 17:17:07 +0000 (12:17 -0500)
committerVladimir N. Makarov <vmakarov@redhat.com>
Fri, 10 Feb 2023 17:17:07 +0000 (12:17 -0500)
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.

gcc/ira.cc

index d0b6ea0..9f9af80 100644 (file)
@@ -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.  */