This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: vectorizing optimization
- From: Aldy Hernandez <aldyh at redhat dot com>
- To: "Andrea 'Fyre Wyzard' Bocci" <fwyzard at inwind dot it>
- Cc: gcc at gcc dot gnu dot org
- Date: 26 Nov 2001 20:29:59 -0600
- Subject: Re: vectorizing optimization
- References: <5.1.0.14.0.20011126235057.00a6e830@popmail.inwind.it>
>>>>> "Andrea" == Andrea 'Fyre Wyzard' Bocci <fwyzard@inwind.it> writes:
> Hi everybody.
> It's been some times now, I've got this recurrent idea:
> Implementing an automatic vectorizing optimization pass would (if it
> worked) A Good Thing.
> And, from my
> this-is-the-first-time-I-look-at-something-as-complex-as-gcc point of
> view, quite hard to do.
> Anyway, as I hope to have much spare time by a week (I'm graduating at
> the beginning of December), I'd like spend some of it learning the gcc
> intenals and trying to implement it.
> Now, my questions:
> 1) I've seen that vector instructions support is being added to the
> 3.1 branch. Is anybody already working on a vectorizing pass?
> 2) At what level it would be better implemented ? tree or RTL ? In a
> branch from the main tree, or in conjunction withe the AST branch ?
> 3) In a machine independent fashion, or for a specific architecture
> (eg., 386) ?
It's probably not incredibly hard to get a prototype going, but quite
time consuming to implement correctly in a target independent matter.
For the "Exploiting superword level parallelism with multimedia
instruction sets" paper, you'll need a loop unroller at the tree
level, something which we don't have. You'll also have to deal with
alignment issues, which the paper briefly skims over. ..just to name
a few of the issues.
You should do it at the tree level.
Aldy