diff options
author | Bernd Schmidt <bernds@codesourcery.com> | 2011-06-20 10:29:46 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2011-06-20 10:29:46 +0000 |
commit | 49a30d001c710d593d15458390d4139fc5232ef6 (patch) | |
tree | 6ff7052031154102376b390324e2dce95c511d77 /gcc | |
parent | dfb43cd5bd5ff69f865d7be6fb190d405719e15d (diff) | |
download | gcc-49a30d001c710d593d15458390d4139fc5232ef6.zip gcc-49a30d001c710d593d15458390d4139fc5232ef6.tar.gz gcc-49a30d001c710d593d15458390d4139fc5232ef6.tar.bz2 |
* regrename.c (do_replace): Don't update notes.
From-SVN: r175203
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/regrename.c | 32 |
2 files changed, 4 insertions, 32 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c971faf..89c5f65 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2011-06-20 Bernd Schmidt <bernds@codesourcery.com> + + * regrename.c (do_replace): Don't update notes. + 2011-06-20 Alan Modra <amodra@gmail.com> * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part diff --git a/gcc/regrename.c b/gcc/regrename.c index 77e23f8..f313d08 100644 --- a/gcc/regrename.c +++ b/gcc/regrename.c @@ -432,7 +432,6 @@ do_replace (struct du_head *head, int reg) { struct du_chain *chain; unsigned int base_regno = head->regno; - bool found_note = false; gcc_assert (! DEBUG_INSN_P (head->first->insn)); @@ -446,46 +445,15 @@ do_replace (struct du_head *head, int reg) INSN_VAR_LOCATION_LOC (chain->insn) = gen_rtx_UNKNOWN_VAR_LOC (); else { - rtx note; - *chain->loc = gen_raw_REG (GET_MODE (*chain->loc), reg); if (regno >= FIRST_PSEUDO_REGISTER) ORIGINAL_REGNO (*chain->loc) = regno; REG_ATTRS (*chain->loc) = attr; REG_POINTER (*chain->loc) = reg_ptr; - - for (note = REG_NOTES (chain->insn); note; note = XEXP (note, 1)) - { - enum reg_note kind = REG_NOTE_KIND (note); - if (kind == REG_DEAD || kind == REG_UNUSED) - { - rtx reg = XEXP (note, 0); - gcc_assert (HARD_REGISTER_P (reg)); - - if (REGNO (reg) == base_regno) - { - found_note = true; - if (kind == REG_DEAD - && reg_set_p (*chain->loc, chain->insn)) - remove_note (chain->insn, note); - else - XEXP (note, 0) = *chain->loc; - break; - } - } - } } df_insn_rescan (chain->insn); } - if (!found_note) - { - /* If the chain's first insn is the same as the last, we should have - found a REG_UNUSED note. */ - gcc_assert (head->first->insn != head->last->insn); - if (!reg_set_p (*head->last->loc, head->last->insn)) - add_reg_note (head->last->insn, REG_DEAD, *head->last->loc); - } } |