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 48ccc22..998be31 100644 (file)
@@ -1,5 +1,12 @@
 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
        * lra.c: Rename loc to sloc and loc_t to sloc_t.
 
index 683d47e..1e7f354 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 e91d37d..9a8b098 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;
            }