Commit dbaff908 by Roger Sayle Committed by Roger Sayle

cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL insn's notes following a...


	* cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL
	insn's notes following a substitution inside a libcall.

From-SVN: r61524
parent aa4fb101
2003-01-20 Roger Sayle <roger@eyesopen.com>
* cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL
insn's notes following a substitution inside a libcall.
2003-01-20 Zack Weinberg <zack@codesourcery.com> 2003-01-20 Zack Weinberg <zack@codesourcery.com>
* configure.in: Check for system-provided 'uchar' type. * configure.in: Check for system-provided 'uchar' type.
......
...@@ -5557,6 +5557,8 @@ cse_insn (insn, libcall_insn) ...@@ -5557,6 +5557,8 @@ cse_insn (insn, libcall_insn)
/* Look for a substitution that makes a valid insn. */ /* Look for a substitution that makes a valid insn. */
else if (validate_change (insn, &SET_SRC (sets[i].rtl), trial, 0)) else if (validate_change (insn, &SET_SRC (sets[i].rtl), trial, 0))
{ {
rtx new = canon_reg (SET_SRC (sets[i].rtl), insn);
/* If we just made a substitution inside a libcall, then we /* If we just made a substitution inside a libcall, then we
need to make the same substitution in any notes attached need to make the same substitution in any notes attached
to the RETVAL insn. */ to the RETVAL insn. */
...@@ -5565,14 +5567,12 @@ cse_insn (insn, libcall_insn) ...@@ -5565,14 +5567,12 @@ cse_insn (insn, libcall_insn)
|| GET_CODE (sets[i].orig_src) == SUBREG || GET_CODE (sets[i].orig_src) == SUBREG
|| GET_CODE (sets[i].orig_src) == MEM)) || GET_CODE (sets[i].orig_src) == MEM))
replace_rtx (REG_NOTES (libcall_insn), sets[i].orig_src, replace_rtx (REG_NOTES (libcall_insn), sets[i].orig_src,
canon_reg (SET_SRC (sets[i].rtl), insn)); copy_rtx (new));
/* The result of apply_change_group can be ignored; see /* The result of apply_change_group can be ignored; see
canon_reg. */ canon_reg. */
validate_change (insn, &SET_SRC (sets[i].rtl), validate_change (insn, &SET_SRC (sets[i].rtl), new, 1);
canon_reg (SET_SRC (sets[i].rtl), insn),
1);
apply_change_group (); apply_change_group ();
break; break;
} }
......
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