Commit d4fd3465 by Ian Lance Taylor Committed by Ian Lance Taylor

re PR rtl-optimization/32776 (ICE RTL check: expected code 'reg', have 'concatn'…

re PR rtl-optimization/32776 (ICE RTL check: expected code 'reg', have 'concatn' in rhs_regno, at rtl.h:972)

	PR rtl-optimization/32776
	* lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
	(resolve_use): Likewise.
	(decompose_multiword_subregs): Remove "changed" local variable.

From-SVN: r127282
parent 9c94a881
2007-08-07 Ian Lance Taylor <iant@google.com>
PR rtl-optimization/32776
* lower-subreg.c (resolve_clobber): Call resolve_reg_notes.
(resolve_use): Likewise.
(decompose_multiword_subregs): Remove "changed" local variable.
2007-08-07 Carlos O'Donell <carlos@codesourcery.com> 2007-08-07 Carlos O'Donell <carlos@codesourcery.com>
* configure.ac: Define HAVE_GNU_AS if $gas_flag is yes. * configure.ac: Define HAVE_GNU_AS if $gas_flag is yes.
......
...@@ -936,6 +936,8 @@ resolve_clobber (rtx pat, rtx insn) ...@@ -936,6 +936,8 @@ resolve_clobber (rtx pat, rtx insn)
emit_insn_after (x, insn); emit_insn_after (x, insn);
} }
resolve_reg_notes (insn);
return true; return true;
} }
...@@ -950,6 +952,9 @@ resolve_use (rtx pat, rtx insn) ...@@ -950,6 +952,9 @@ resolve_use (rtx pat, rtx insn)
delete_insn (insn); delete_insn (insn);
return true; return true;
} }
resolve_reg_notes (insn);
return false; return false;
} }
...@@ -1251,25 +1256,17 @@ decompose_multiword_subregs (void) ...@@ -1251,25 +1256,17 @@ decompose_multiword_subregs (void)
FOR_BB_INSNS (bb, insn) FOR_BB_INSNS (bb, insn)
{ {
rtx next, pat; rtx next, pat;
bool changed;
if (!INSN_P (insn)) if (!INSN_P (insn))
continue; continue;
next = NEXT_INSN (insn); next = NEXT_INSN (insn);
changed = false;
pat = PATTERN (insn); pat = PATTERN (insn);
if (GET_CODE (pat) == CLOBBER) if (GET_CODE (pat) == CLOBBER)
{ resolve_clobber (pat, insn);
if (resolve_clobber (pat, insn))
changed = true;
}
else if (GET_CODE (pat) == USE) else if (GET_CODE (pat) == USE)
{ resolve_use (pat, insn);
if (resolve_use (pat, insn))
changed = true;
}
else else
{ {
rtx set; rtx set;
...@@ -1302,8 +1299,6 @@ decompose_multiword_subregs (void) ...@@ -1302,8 +1299,6 @@ decompose_multiword_subregs (void)
insn = resolve_simple_move (set, insn); insn = resolve_simple_move (set, insn);
if (insn != orig_insn) if (insn != orig_insn)
{ {
changed = true;
remove_retval_note (insn); remove_retval_note (insn);
recog_memoized (insn); recog_memoized (insn);
...@@ -1320,7 +1315,6 @@ decompose_multiword_subregs (void) ...@@ -1320,7 +1315,6 @@ decompose_multiword_subregs (void)
decomposed_shift = resolve_shift_zext (insn); decomposed_shift = resolve_shift_zext (insn);
if (decomposed_shift != NULL_RTX) if (decomposed_shift != NULL_RTX)
{ {
changed = true;
insn = decomposed_shift; insn = decomposed_shift;
recog_memoized (insn); recog_memoized (insn);
extract_insn (insn); extract_insn (insn);
...@@ -1349,8 +1343,6 @@ decompose_multiword_subregs (void) ...@@ -1349,8 +1343,6 @@ decompose_multiword_subregs (void)
gcc_assert (i); gcc_assert (i);
remove_retval_note (insn); remove_retval_note (insn);
changed = 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