Commit f55b9465 by Ulrich Weigand Committed by Ulrich Weigand

re PR target/24600 (unrecognizable instruction)

ChangeLog:

	PR target/24600
	* loop.c (loop_givs_rescan): Use force_operand to expand
	complex GIVs.

testsuite/ChangeLog:

	PR target/24600
	* gcc.dg/pr24600.c: New test.

From-SVN: r106404
parent 35326233
2005-11-02 Ulrich Weigand <uweigand@de.ibm.com>
PR target/24600
* loop.c (loop_givs_rescan): Use force_operand to expand
complex GIVs.
2005-11-02 Andrew Pinski <pinskia@physics.uc.edu> 2005-11-02 Andrew Pinski <pinskia@physics.uc.edu>
PR 22429 PR 22429
......
...@@ -5497,9 +5497,16 @@ loop_givs_rescan (struct loop *loop, struct iv_class *bl, rtx *reg_map) ...@@ -5497,9 +5497,16 @@ loop_givs_rescan (struct loop *loop, struct iv_class *bl, rtx *reg_map)
/* Not replaceable; emit an insn to set the original /* Not replaceable; emit an insn to set the original
giv reg from the reduced giv. */ giv reg from the reduced giv. */
else if (REG_P (*v->location)) else if (REG_P (*v->location))
loop_insn_emit_before (loop, 0, v->insn, {
gen_move_insn (*v->location, rtx tem;
v->new_reg)); start_sequence ();
tem = force_operand (v->new_reg, *v->location);
if (tem != *v->location)
emit_move_insn (*v->location, tem);
tem = get_insns ();
end_sequence ();
loop_insn_emit_before (loop, 0, v->insn, tem);
}
else if (GET_CODE (*v->location) == PLUS else if (GET_CODE (*v->location) == PLUS
&& REG_P (XEXP (*v->location, 0)) && REG_P (XEXP (*v->location, 0))
&& CONSTANT_P (XEXP (*v->location, 1))) && CONSTANT_P (XEXP (*v->location, 1)))
......
2005-11-02 Ulrich Weigand <uweigand@de.ibm.com>
PR target/24600
* gcc.dg/pr24600.c: New test.
2005-11-02 Mark Mitchell <mark@codesourcery.com> 2005-11-02 Mark Mitchell <mark@codesourcery.com>
PR c++/19253 PR c++/19253
/* This used to ICE on s390 due to a old-loop bug. */
/* { dg-do compile } */
/* { dg-options "-O2" } */
char *strcpy (char *dest, const char *src);
void test (char *Line, int len)
{
int z;
for (z = 1; z <= len; z++)
if (Line[z - 1])
strcpy (Line + z + 1, Line);
}
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