This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[tree-ssa] Re: auto vectorization in gcc
- From: "Dorit Naishlos" <DORIT at il dot ibm dot com>
- To: Martin Brain <mjb at cs dot bath dot ac dot uk>
- Cc: gcc at gcc dot gnu dot org, Pop Sébastian <pop at gauvain dot u-strasbg dot fr>, Daniel Berlin <dberlin at dberlin dot org>, Diego Novillo <dnovillo at redhat dot com>, David Edelsohn <dje at watson dot ibm dot com>, Jan Hubicka <jh at suse dot cz>
- Date: Wed, 23 Jul 2003 19:50:40 +0300
- Subject: [tree-ssa] Re: auto vectorization in gcc
> This is very much along the same lines as I was envisaging. Given we
> currently have some time and resources that could be used on a project
> like this would you be interested / able tocolaborate on this project?
Sure! (there's a lot to be done...)
We're still at the design phase - trying to decide which
vectorization scheme we want to implement, what is the minimal
essential infrastructure required in order to vectorize even
the simplest loop/code-sequence, and how much of this infrastructure
is already available, or is being developed and will be available (and
when).
I understand that Sebastian Pop is working on IV detection,
and that data dependence analysis will be based on that infrastructure.
Where does that stand? Sebastian, were you planning to work on the
dependence graph too?
The project's web page states that loop normalization
and loop canonicalization are on the todo list. Is someone working
on that? (Daniel Berlin?) I guess that's pending the IV detection work too?
Jan Hubicka wrote (http://gcc.gnu.org/ml/gcc/2003-07/msg00185.html):
> "...I am not sure whether Tree-SSA is quite
> ready for playing with things like, say, loop unrolling when there are
> still no ways to duplicate basic blocks and redirect edges..."
I didn't see loop unrolling on the todo list though. I saw that there's
an intention to borrow the loop unroller from the rtlopt branch.
Where does that stand?
Anything else regarding loop / data-dependence / array / alignment
analysis that people are working on?
thanks,
dorit
Martin Brain
<mjb@cs.bath.ac.u To: Dorit Naishlos/Haifa/IBM@IBMIL
k> cc: gcc@gcc.gnu.org
Subject: Re: auto vectorization in gcc
22/07/2003 20:03
Sorry about my previous out of thread posting - have now had a proper
chance to catch up on this discussion.
> Thanks very much for the responsiveness!
>
> > The tree level is *more* capable than the rtl level at representing
> > vector types (and thus operations). I think all we need is some
> > small amount of info from the target about vector widths and memory
> > blocking, and then the transformation should happen at the tree level.
>
> I wonder if the target info that you suggest to expose to the tree level
> would suffice. In many cases code sequences that are perfectly
> parallelizable with respect to data dependences, will not benefit from
> vectorization. In order to avoid making really poor decisions, you want
> to have at least the following information exposed:
<snip>
> Bottom line is, if there's not enough information at the tree level, too
> much redundant code will be generated, requiring a lot of effort to
> undo it. I think we should either expose all vital target specific
> info to the tree-level, or perform only (target independent) analysis in
> the
> tree level, and do the actual vectorization transformation where we know
if
> and how to do it.
This is very much along the same lines as I was envisaging. Given we
currently have some time and resources that could be used on a project
like this would you be interested / able tocolaborate on this project?
Cheers,
- Martin