re PR middle-end/43475 (ICE in form_sum, at reload.c:5348)

PR middle-end/43475
	* recog.c (validate_replace_rtx_group): Replace also in
	REG_EQUAL and REG_EQUIV notes.

testsuite/
	* gfortran.dg/pr43475.f90: New testcase.

From-SVN: r157640
This commit is contained in:
Michael Matz 2010-03-22 16:28:51 +00:00 committed by Michael Matz
parent 80f046cced
commit 047550e9f6
4 changed files with 32 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2010-03-22 Michael Matz <matz@suse.de>
PR middle-end/43475
* recog.c (validate_replace_rtx_group): Replace also in
REG_EQUAL and REG_EQUIV notes.
2010-03-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43390

View File

@ -787,12 +787,18 @@ validate_replace_rtx_part_nosimplify (rtx from, rtx to, rtx *where,
}
/* Try replacing every occurrence of FROM in INSN with TO. */
/* Try replacing every occurrence of FROM in INSN with TO. This also
will replace in REG_EQUAL and REG_EQUIV notes. */
void
validate_replace_rtx_group (rtx from, rtx to, rtx insn)
{
rtx note;
validate_replace_rtx_1 (&PATTERN (insn), from, to, insn, true);
for (note = REG_NOTES (insn); note; note = XEXP (note, 1))
if (REG_NOTE_KIND (note) == REG_EQUAL
|| REG_NOTE_KIND (note) == REG_EQUIV)
validate_replace_rtx_1 (&XEXP (note, 0), from, to, insn, true);
}
/* Function called by note_uses to replace used subexpressions. */

View File

@ -1,3 +1,8 @@
2010-03-22 Michael Matz <matz@suse.de>
PR middle-end/43475
* gfortran.dg/pr43475.f90: New testcase.
2010-03-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43390

View File

@ -0,0 +1,14 @@
! PR middle-end/43475
! { dg-do compile }
! { dg-options "-O2" }
subroutine ss(w)
implicit none
integer :: w(:)
integer :: b,c,d
b = w(8)
c = 5
d = 3
call s1(c)
call s2(b+c)
call s3(w(b))
end subroutine ss