var-expand1.c: New test.

2007-03-05  Revital Eres  <eres@il.ibm.com>

      * gcc.dg/var-expand1.c: New test.
      * loop-unroll.c (analyze_insn_to_expand_var): Add dump info
      when an accumulator is expanded.

From-SVN: r122543
This commit is contained in:
Revital Eres 2007-03-05 09:28:23 +00:00 committed by Victor Kaplansky
parent fabb00fcc5
commit c1c5a431b5
3 changed files with 40 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2007-03-05 Revital Eres <eres@il.ibm.com>
* gcc.dg/var-expand1.c: New test.
* loop-unroll.c (analyze_insn_to_expand_var): Add dump info
when an accumulator is expanded.
2007-03-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
PR other/30465

View File

@ -1588,7 +1588,15 @@ analyze_insn_to_expand_var (struct loop *loop, rtx insn)
|| FLOAT_MODE_P (mode2))
&& !flag_unsafe_math_optimizations)
return NULL;
if (dump_file)
{
fprintf (dump_file,
"\n;; Expanding Accumulator ");
print_rtl (dump_file, dest);
fprintf (dump_file, "\n");
}
/* Record the accumulator to expand. */
ves = XNEW (struct var_to_expand);
ves->insn = insn;

View File

@ -0,0 +1,25 @@
/* { dg-do compile } */
/* { dg-options "-O2 -funroll-loops --fast-math -fvariable-expansion-in-unroller -dL" } */
extern void abort (void);
float array[10] = { 1,2,3,4,5,6,7,8,9,10 };
int foo (int n)
{
unsigned i;
float accum = 1.0;
for (i = 0; i < n; i++)
accum += array[i];
return accum;
}
int main (void)
{
return foo (10);
}
/* { dg-final { scan-rtl-dump "Expanding Accumulator" "loop2_unroll" } } */
/* { dg-final { cleanup-rtl-dump "loop*" } } */