diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-12-07 00:24:38 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-12-07 00:24:38 +0000 |
commit | 88e8363aa4b6842b409864a8b7a87f8938a5b830 (patch) | |
tree | baac4ec7ef354f3179d441355779f0ac96b3279f /gcc | |
parent | 439b85697cfa601d4485c773d6071d0c797486e2 (diff) | |
download | gcc-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')
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/regmove.c | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 505c7998d83..76b18368294 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ Mon Dec 6 15:12:14 1999 Jim Wilson <wilson@cygnus.com> + * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for + and handle REG_UNUSED note on insn. + * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask. Set inner_mask instead of mask. 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) { |