On Fri, Jun 15, 2007 at 11:33:52PM -0400, Vladimir N. Makarov wrote:
> H. J. Lu wrote:
> 
> >On Fri, Jun 15, 2007 at 06:21:53PM -0700, Ian Lance Taylor wrote:
> > 
> >
> >>This is hardly a new thought, but I believe that for the i386 gcc is
> >>handicapped by reload.  No matter how smart we are before reload, it
> >>just take one poor decision by reload in an inner loop and we've lost
> >>all the gains.  Reload has enormous complexities which are mostly
> >>irrelevant for the i386.  And I think that the idea of doing register
> >>allocation separately from spill code generation does not make sense
> >>on the i386.
> >>
> >>   
> >>
> >
> >Why don't we turn on vectorizer at -O3 or even -O2, depending on
> >ISA? I added -ftree-vectorize to BOOT_CFLAGS on x86-64. According to
> >-ftree-vectorizer-verbose=1, there are 82 loops vectorized in
> >gcc source. There are no regressions. There are not much changes
> >in bootstrap time as well as "make check" time.
> >
> > 
> >
> A mount ago I did some measurements of the effect of the vectorizer for 
> Core2 in 64-bit mode.  Unfortunately, I saw small improvement (as I 
> remember less than 1% for SPECInt2000).

Vectorizer works only when there are vector instructions available
which vectorizer can take advantage of. Adding -mssse3 should make
vectorizer to work a little bit better. SSE4 will improve vectorizer
even more.

> 
> Vectorizer is a big a project and may be we will see more improvements 
> in future. They promissed implement SLP two years ago and now I see it 
> happens.  It would be nice  to see it not only in loops.

There are quite a few known simple cases which vectorizer fails to
vectorize. Also, not all x86 vector instructions are supported by
vectorizer.


H.J.

Reply via email to