From 6fb85418122c9a3bde93c7db8e185c2d0f53413a Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Fri, 10 Nov 2000 10:44:42 +0000 Subject: [PATCH] Fix REG_INC note handling in register renamer. From-SVN: r37364 --- gcc/ChangeLog | 5 +++++ gcc/regrename.c | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) 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. */ -- 2.30.2