Commit bda9fc39 by Steven Bosscher Committed by Ian Lance Taylor

re PR middle-end/33029 (libgcc2.c:1890: internal compiler error: in…

re PR middle-end/33029 (libgcc2.c:1890: internal compiler error: in local_cprop_pass, at gcse.c:3236)

	PR middle-end/33029
	* lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
	note, remove the associated REG_RETVAL note.

From-SVN: r128119
parent 437cc56a
2007-09-04 Steven Bosscher <steven@gcc.gnu.org>
PR middle-end/33029
* lower-subreg.c (resolve_clobber): If we remove a REG_LIBCALL
note, remove the associated REG_RETVAL note.
2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com> 2007-09-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
* config.gcc (powerpc*-*-*): Install * config.gcc (powerpc*-*-*): Install
...@@ -8463,7 +8469,6 @@ ...@@ -8463,7 +8469,6 @@
PR tree-optimization/19590 PR tree-optimization/19590
* tree-vrp.c (adjust_range_with_scev): Set the range when the result * tree-vrp.c (adjust_range_with_scev): Set the range when the result
of scev is a constant. of scev is a constant.
* gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New.
2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com> 2007-06-21 Kenneth Zadeck <zadeck@naturalbridge.com>
......
...@@ -897,7 +897,7 @@ resolve_simple_move (rtx set, rtx insn) ...@@ -897,7 +897,7 @@ resolve_simple_move (rtx set, rtx insn)
static bool static bool
resolve_clobber (rtx pat, rtx insn) resolve_clobber (rtx pat, rtx insn)
{ {
rtx reg; rtx reg, note;
enum machine_mode orig_mode; enum machine_mode orig_mode;
unsigned int words, i; unsigned int words, i;
int ret; int ret;
...@@ -909,8 +909,10 @@ resolve_clobber (rtx pat, rtx insn) ...@@ -909,8 +909,10 @@ resolve_clobber (rtx pat, rtx insn)
/* If this clobber has a REG_LIBCALL note, then it is the initial /* If this clobber has a REG_LIBCALL note, then it is the initial
clobber added by emit_no_conflict_block. We were able to clobber added by emit_no_conflict_block. We were able to
decompose the register, so we no longer need the clobber. */ decompose the register, so we no longer need the clobber. */
if (find_reg_note (insn, REG_LIBCALL, NULL_RTX) != NULL_RTX) note = find_reg_note (insn, REG_LIBCALL, NULL_RTX);
if (note != NULL_RTX)
{ {
remove_retval_note (XEXP (note, 0));
delete_insn (insn); delete_insn (insn);
return true; return true;
} }
......
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