From: Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> Date: Wed, 31 Jan 2001 00:20:44 +0000 (+0100) Subject: regmove.c (try_auto_increment): Change REG_DEAD into REG_UNUSED when register dies... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2f33c6356126df5e17e1f8dcd44e4f4c52278b3b;p=gcc.git regmove.c (try_auto_increment): Change REG_DEAD into REG_UNUSED when register dies in the insn. * regmove.c (try_auto_increment): Change REG_DEAD into REG_UNUSED when register dies in the insn. From-SVN: r39358 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 10488406f26..839d4f4db34 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-01-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> + + * regmove.c (try_auto_increment): Change REG_DEAD into REG_UNUSED + when register dies in the insn. + 2001-01-30 Neil Booth <neil@daikokuya.demon.co.uk> * diagnostic.c (fatal): Fix word wrap. diff --git a/gcc/regmove.c b/gcc/regmove.c index e3b6cf9970e..cbbeb835c7e 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -146,6 +146,16 @@ try_auto_increment (insn, inc_insn, inc_insn_set, reg, increment, pre) gen_rtx_fmt_e (inc_code, Pmode, reg), 1); if (apply_change_group ()) { + /* If there is a REG_DEAD note on this insn, we must + change this not to REG_UNUSED meaning that the register + is set, but the value is dead. Failure to do so will + result in a sched1 abort -- when it recomputes lifetime + information, the number of REG_DEAD notes will have + changed. */ + rtx note = find_reg_note (insn, REG_DEAD, reg); + if (note) + PUT_MODE (note, REG_UNUSED); + REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_INC, reg, REG_NOTES (insn));