------- Comment #6 from rguenth at gcc dot gnu dot org  2010-02-16 15:06 -------
I can mitigate the effect of VRP calling SCEV somewhat, but still we'll
the following trigger the issue.

int foo (int i)
{
  long j = i;
  int k = 0;
  while (j < 10000)
    {
      j *= i;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      j *= j;
      k += j;
    }
  return k;
}

when analyzing the scalar evolution of k we find (int) {0, +, D.2723_10}_1
and instantiating parameters causes us to analyze the scalar evolution
of all other temporaries creating a ripple-down effect of caching
expanded evolutions.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41043

Reply via email to