From: Kaz Kojima Date: Fri, 24 Oct 2008 23:09:00 +0000 (+0000) Subject: re PR rtl-optimization/37769 (internal compiler error: in reg_overlap_mentioned_for_r... X-Git-Tag: releases/gcc-4.4.0~1937 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d3a5ecb5dcf6ad53d8d4256c54fca5256bfbd3bc;p=thirdparty%2Fgcc.git re PR rtl-optimization/37769 (internal compiler error: in reg_overlap_mentioned_for_reload_p, at reload.c:6525) PR rtl-optimization/37769 * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed. From-SVN: r141354 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ecd90819eaf3..1beb0d0af5c0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-10-24 Kaz Kojima + + PR rtl-optimization/37769 + * regmove.c (optimize_reg_copy_2): Update REG_INC note if needed. + 2008-10-24 Kaz Kojima * config/sh/t-sh: Use $(MULTILIB_CFLAGS) when compiling to diff --git a/gcc/regmove.c b/gcc/regmove.c index e25dbec7fe99..12b93fc2ff82 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -685,7 +685,15 @@ optimize_reg_copy_2 (rtx insn, rtx dest, rtx src) { if (reg_mentioned_p (dest, PATTERN (q))) { + rtx note; + PATTERN (q) = replace_rtx (PATTERN (q), dest, src); + note = FIND_REG_INC_NOTE (q, dest); + if (note) + { + remove_note (q, note); + add_reg_note (q, REG_INC, src); + } df_insn_rescan (q); }