]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR bootstrap/55068 (AIX bootstrap in push_reload() after LRA merge)
authorVladimir Makarov <vmakarov@redhat.com>
Thu, 25 Oct 2012 04:19:43 +0000 (04:19 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Thu, 25 Oct 2012 04:19:43 +0000 (04:19 +0000)
2012-10-24  Vladimir Makarov  <vmakarov@redhat.com>

PR bootstrap/55068
PR regression/55050
* ira.c (setup_reg_renumber): Fix assert.
* ira-emit.c (emit_move_list): Update equivalences only for LRA.

From-SVN: r192797

gcc/ChangeLog
gcc/ira-emit.c
gcc/ira.c

index 48ccc22fe0952ba0492e6181cc269588fde689f2..998be31a421b753abd651feb60ed149150c73929 100644 (file)
@@ -1,3 +1,10 @@
+2012-10-24  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR bootstrap/55068
+       PR regression/55050
+       * ira.c (setup_reg_renumber): Fix assert.
+       * ira-emit.c (emit_move_list): Update equivalences only for LRA.
+
 2012-10-24  Vladimir Makarov  <vmakarov@redhat.com>
 
        PR bootstrap/55067
index 683d47eba80d2170e2d20de9cf18a73d5a3a4201..1e7f354102e6bcfde3af020ae7be815b2430af45 100644 (file)
@@ -947,7 +947,8 @@ emit_move_list (move_t list, int freq)
                = gen_rtx_INSN_LIST (VOIDmode, insn, reg_equiv_init (regno));
            }
        }
-      ira_update_equiv_info_by_shuffle_insn (to_regno, from_regno, list->insn);
+      if (ira_use_lra_p)
+       ira_update_equiv_info_by_shuffle_insn (to_regno, from_regno, list->insn);
       emit_insn (list->insn);
       mode = ALLOCNO_MODE (list->to);
       aclass = ALLOCNO_CLASS (list->to);
index e91d37ddaa56e0fdcaff885de13ce6547686d172..9a8b098cf4846b305eb36c08502ad7a799cfd927 100644 (file)
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -1989,6 +1989,7 @@ setup_reg_renumber (void)
              ira_assert (!optimize || flag_caller_saves
                          || (ALLOCNO_CALLS_CROSSED_NUM (a)
                              == ALLOCNO_CHEAP_CALLS_CROSSED_NUM (a))
+                         || regno >= ira_reg_equiv_len
                          || ira_equiv_no_lvalue_p (regno));
              caller_save_needed = 1;
            }