auto vectorization in gcc

Joern Rennecke joern.rennecke@superh.com
Thu Jul 17 20:16:00 GMT 2003


> What I've always envisioned is that we'd do the vectorization at the tree
> level, building vectors as wide as possible (up to some limit).  Then
> at the tree->rtl phase we'd break the vectors down to whatever size the
> target actually supports.  The basic idea being to not have a lot of
> target dependencies in the vectorizer.

We need the limit to be machine-dependent, because what is a good vector size
for one target, will cause lots of spills for another target (unless you
want to re-roll the loop, but why should we have to add an extra loop
re-rolling phase if we can avoid gratituious unrolling in the first place ?).
Moreover, there is no point in enforcing / preconditioning / checking
alignment wider than it makes sense for the target.

If you want to keep the ability to run the tree optimizers target
independetly, we can make the target settings so that they can be
overridden with --param options.



More information about the Gcc mailing list