summaryrefslogtreecommitdiff
path: root/gcc/regmove.c
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1999-12-07 00:24:38 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1999-12-07 00:24:38 +0000
commit88e8363aa4b6842b409864a8b7a87f8938a5b830 (patch)
treebaac4ec7ef354f3179d441355779f0ac96b3279f /gcc/regmove.c
parent439b85697cfa601d4485c773d6071d0c797486e2 (diff)
downloadgcc-88e8363aa4b6842b409864a8b7a87f8938a5b830.tar.gz
Fix ia64 abort while compiling gcc.c-torture/unsorted/logic.c.
* regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for and handle REG_UNUSED note on insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30813 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/regmove.c')
-rw-r--r--gcc/regmove.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/regmove.c b/gcc/regmove.c
index b4647816679..b78ea161461 100644
--- a/gcc/regmove.c
+++ b/gcc/regmove.c
@@ -528,6 +528,14 @@ optimize_reg_copy_1 (insn, dest, src)
REG_NOTES (insn) = note;
}
+ /* DEST is also dead if INSN has a REG_UNUSED note for DEST. */
+ if (! dest_death
+ && (dest_death = find_regno_note (insn, REG_UNUSED, dregno)))
+ {
+ PUT_REG_NOTE_KIND (dest_death, REG_DEAD);
+ remove_note (insn, dest_death);
+ }
+
/* Put death note of DEST on P if we saw it die. */
if (dest_death)
{