On Tue, 2006-12-19 at 03:42 -0500, Robert Dewar wrote:
> 
> When I worked on SPITBOL, people all the time were suggesting
> optimizations in letters to the SPITBOL newsletter. I imposed
> a rule saying that no one could propose an optimization unless
> they could show ONE example program where the optimization could
> plausibly save 5% execution time. I never got another suggestion.

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

A simple loop like:
int foo ()
{
  int a[N];
  int i;
  int n;

  for (i = 0; i <= n; i++)
      ca[i] = 2;
}

we cannot find how many iterations it runs without knowing that signed
types overflow.
And yes people write code like that, it shows up in GCC itself IIRC (as
the original testcase comes from GCC in SPEC).

I don't have the number of times this shows up or how much it helps but
it does help out on being able to vectorize this loop.

Another example (this time for "for (i=i0; i<=i1+1; ++i)" )
http://gcc.gnu.org/bugzilla//show_bug.cgi?id=26900
via:
http://gcc.gnu.org/bugzilla//show_bug.cgi?id=26899

which can only be done when signed overflow is undefined.

All of these do show up in real code, and since loops are now more
important to optimize than anything else, well knowing the number of
iterations is very important.

Thanks,
Andrew Pinski

Reply via email to