Loop unrolling

Nathan Myers ncm@nospam.cantrip.org
Fri Sep 18 21:46:00 GMT 1998

Jeffrey A Law wrote:

>   > 2) Determining whether a loop is empty or not needs some kind of
>   >    register lifetime information.  Last I looked, this was not
>   >    reliable at the time of loop unrolling.  If this is no longer true,
>   >    then I can resurrect some code to do this.
> Maybe I misunderstood the kinds of loops people wanted to eliminate.
> I thought if they were empty there was nothing but an increment of
> the counter, and a condjump back to the counter increment.

Generally the kinds of "empty" loops that show up in template 
expansions look something like:

  for (i = 0; i < 0; ++i) *p++ = *q++;

or probably more frequently
  for (i = 0; i < 10; ++i, ++p) { if (p); }

Nathan Myers

More information about the Gcc mailing list