From: Bernd Schmidt Date: Fri, 10 Nov 2000 10:44:42 +0000 (+0000) Subject: Fix REG_INC note handling in register renamer. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6fb85418122c9a3bde93c7db8e185c2d0f53413a;p=gcc.git Fix REG_INC note handling in register renamer. From-SVN: r37364 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b8625b7691a..4ff995ebf11 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-11-09 Bernd Schmidt + + * regrename.c (build_def_use): Mark contents of REG_INC notes as + needing replacement. + 2000-11-09 Jan van Male * c-tree.texi: Fix typos. diff --git a/gcc/regrename.c b/gcc/regrename.c index 5078585647e..b3aa6c2f32a 100644 --- a/gcc/regrename.c +++ b/gcc/regrename.c @@ -714,10 +714,15 @@ build_def_use (bb, regs_used) scan_rtx (insn, loc, class, mark_read, type); } - /* Step 4: Close chains for registers that die here. */ + /* Step 4: Close chains for registers that die here. + Also record updates for REG_INC notes. */ for (note = REG_NOTES (insn); note; note = XEXP (note, 1)) - if (REG_NOTE_KIND (note) == REG_DEAD) - scan_rtx (insn, &XEXP (note, 0), NO_REGS, terminate_dead, OP_IN); + { + if (REG_NOTE_KIND (note) == REG_DEAD) + scan_rtx (insn, &XEXP (note, 0), NO_REGS, terminate_dead, OP_IN); + else if (REG_NOTE_KIND (note) == REG_INC) + scan_rtx (insn, &XEXP (note, 0), ALL_REGS, mark_read, OP_INOUT); + } /* Step 4B: If this is a call, any chain live at this point requires a caller-saved reg. */