summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2012-10-25 04:19:43 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2012-10-25 04:19:43 +0000
commit376b409295f5eacc281b249801d8009ce1e52de1 (patch)
tree4666b7b7ccbfe20c316af08a111d63b5dd7767ff
parenta2397d157318f0b9a92037aebbfda9f2d367429a (diff)
downloadgcc-376b409295f5eacc281b249801d8009ce1e52de1.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192797 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/ira-emit.c3
-rw-r--r--gcc/ira.c1
3 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 48ccc22fe09..998be31a421 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/ira-emit.c b/gcc/ira-emit.c
index 683d47eba80..1e7f354102e 100644
--- a/gcc/ira-emit.c
+++ b/gcc/ira-emit.c
@@ -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);
diff --git a/gcc/ira.c b/gcc/ira.c
index e91d37ddaa5..9a8b098cf48 100644
--- 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;
}