diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2012-10-25 04:19:43 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2012-10-25 04:19:43 +0000 |
commit | 15652f68ab4668a5164c708f18e1248b790203a6 (patch) | |
tree | 4666b7b7ccbfe20c316af08a111d63b5dd7767ff /gcc | |
parent | 6f28886030623a25a73640e71ae3c5f31b406f70 (diff) | |
download | gcc-15652f68ab4668a5164c708f18e1248b790203a6.zip gcc-15652f68ab4668a5164c708f18e1248b790203a6.tar.gz gcc-15652f68ab4668a5164c708f18e1248b790203a6.tar.bz2 |
re PR bootstrap/55068 (AIX bootstrap in push_reload() after LRA merge)
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ira-emit.c | 3 | ||||
-rw-r--r-- | gcc/ira.c | 1 |
3 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 48ccc22..998be31 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 683d47e..1e7f354 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); @@ -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; } |