------- 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