re PR rtl-optimization/26449 (ICE in loop invariant motion)

PR rtl-optimization/26449
	* loop-invariant.c (move_invariant_reg): Fail if force_operand fails.

	* gcc.dg/pr26449.c: New test.

From-SVN: r114481
This commit is contained in:
Zdenek Dvorak 2006-06-08 10:17:05 +02:00 committed by Zdenek Dvorak
parent 4b5e2dbc97
commit 136778e9b4
4 changed files with 30 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2006-06-07 Zdenek Dvorak <dvorakz@suse.cz>
PR rtl-optimization/26449
* loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
2006-06-07 Andrew MacLeod <amacleod@redhat.com>
PR middle-end/27793

View File

@ -1178,6 +1178,11 @@ move_invariant_reg (struct loop *loop, unsigned invno)
{
start_sequence ();
op = force_operand (SET_SRC (set), reg);
if (!op)
{
end_sequence ();
goto fail;
}
if (op != reg)
emit_move_insn (reg, op);
seq = get_insns ();

View File

@ -1,3 +1,8 @@
2006-06-07 Zdenek Dvorak <dvorakz@suse.cz>
PR rtl-optimization/26449
* gcc.dg/pr26449.c: New test.
2006-06-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/27601

View File

@ -0,0 +1,15 @@
/* { dg-do compile { target i?86-*-* } } */
/* { dg-options "-O1 -ftree-vectorize -march=pentium4 -std=c99" } */
void matmul_i4 (int bbase_yn, int xcount)
{
int x;
int * restrict dest_y;
const int * abase_n;
for (x = 0; x < xcount; x++)
{
dest_y[x] += abase_n[x] * bbase_yn;
}
}