This is the mail archive of the
mailing list for the GCC project.
Re: [RFC] BB vectorizer and vectorizer reorganization
- From: Ira Rosen <IRAR at il dot ibm dot com>
- To: Diego Novillo <dnovillo at google dot com>
- Cc: Dorit Nuzman <DORIT at il dot ibm dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 10 Nov 2008 14:57:04 +0200
- Subject: Re: [RFC] BB vectorizer and vectorizer reorganization
Diego Novillo <firstname.lastname@example.org> wrote on 10/11/2008 14:39:12:
> 2008/11/10 Ira Rosen <IRAR@il.ibm.com>:
> > - The thought is to invoke the bb-vectorize pass right after the
> > pass which follows the loop-vectorizer (before auto-par pass), thereby
> > letting the loop-aware BB-vectorizer have a go first (within the
> > loop-vectorizer), taking advantage of the loop-context if possible.
> > Alternatively, we may want to consider scheduling it after all the loop
> > optimizations (as it doesn't use the loop context at all), however that
> > requires rewriting portions of the data-ref analysis.
> How about deriving the ordering from one of the phase ordering tools
> we have available? Much easier to make a decision then (and it will
> help pruning out dependency bugs in the initial implementation).
But in order to use such tool, an after-loop-optimizations version must be
written first, right?
> > - We'll introduce a new flag -fbb-vectorize, that we plan to turn on by
> > default when -ftree-vectorize is set.
> Is a new flag really needed? Are there cases where one would want
> only SLP-style vectorization?
Actually, our intention was to allow to turn it off.
> > - Data-refs analysis is a reduced data-refs analysis that ignores any
> > evolution and any loop data dependences if exist (in other words we are
> > completely unaware here of the loop context).
> Aren't you specifically targetting code outside loops?
We are targeting basic blocks inside and outside loops. For bbs inside
loops we are not aware of the loop context.
> Not quite sure
> how this is significant other than you will treat loop-carried
> dependencies as vectorization barriers.