Commit ed8395a0 by Josef Zlomek Committed by Josef Zlomek

* gcse.c (try_replace_reg): Fix updating of note.

From-SVN: r70168
parent ff66d28f
2003-08-05 Josef Zlomek <zlomekj@suse.cz>
* gcse.c (try_replace_reg): Fix updating of note.
2003-08-04 Roger Sayle <roger@eyesopen.com> 2003-08-04 Roger Sayle <roger@eyesopen.com>
PR middle-end/11771 PR middle-end/11771
......
...@@ -3849,6 +3849,11 @@ try_replace_reg (rtx from, rtx to, rtx insn) ...@@ -3849,6 +3849,11 @@ try_replace_reg (rtx from, rtx to, rtx insn)
validate_change (insn, &SET_SRC (set), src, 0); validate_change (insn, &SET_SRC (set), src, 0);
} }
/* If there is already a NOTE, update the expression in it with our
replacement. */
if (note != 0)
XEXP (note, 0) = simplify_replace_rtx (XEXP (note, 0), from, to);
if (!success && set && reg_mentioned_p (from, SET_SRC (set))) if (!success && set && reg_mentioned_p (from, SET_SRC (set)))
{ {
/* If above failed and this is a single set, try to simplify the source of /* If above failed and this is a single set, try to simplify the source of
...@@ -3869,11 +3874,6 @@ try_replace_reg (rtx from, rtx to, rtx insn) ...@@ -3869,11 +3874,6 @@ try_replace_reg (rtx from, rtx to, rtx insn)
note = set_unique_reg_note (insn, REG_EQUAL, copy_rtx (src)); note = set_unique_reg_note (insn, REG_EQUAL, copy_rtx (src));
} }
/* If there is already a NOTE, update the expression in it with our
replacement. */
else if (note != 0)
XEXP (note, 0) = simplify_replace_rtx (XEXP (note, 0), from, to);
/* REG_EQUAL may get simplified into register. /* REG_EQUAL may get simplified into register.
We don't allow that. Remove that note. This code ought We don't allow that. Remove that note. This code ought
not to happen, because previous code ought to synthesize not to happen, because previous code ought to synthesize
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment