potential simple loop optimization assistance strategy?

Diego Novillo dnovillo@redhat.com
Fri Jul 1 18:22:00 GMT 2005


On Fri, Jul 01, 2005 at 08:16:19PM +0200, Giovanni Bajo wrote:
> Paul Schlie <schlie@comcast.net> wrote:
> 
> > Where then the programmer could then choose
> > to warrant it by preconditioning the loop:
> >
> >   assert((x < y) && ((y - x) % 4)); // which could throw an exception.
> >
> >   for ((i = x; i < y; i++){ ... }
> 
> There has been some opposition in the past about allowing conditions in
> asserts to be used as hints to the optimizers. In fact, I would like to know
> if there is a current statement of purpose about this. That is, would there
> be strong oppositions to patches doing this?
>
VRP naturally takes advantage of assert (though not in some
occassions involving unsigned types).  Try:

#include <assert.h>

foo (int i)
{
  assert (i != 0);
  if (i == 0)
    return 3;

  return 2;
}


Diego.



More information about the Gcc mailing list