[PATCH] Add a Scalarize pass

Renato Golin renato.golin at linaro.org
Wed Nov 13 04:59:59 PST 2013

On 13 November 2013 11:51, Richard Sandiford <rsandifo at linux.vnet.ibm.com>wrote:

>   ...the point is that we never want vector operations to be left around
>   on SystemZ, regardless of the frontend.  In my use case, this is target-
>   specific rather than a frontend-specific property.

That's a separate issue, and shouldn't be "fixed" with a scalarizer pass.
Is there any pass, other than the vectorizers, that creates vector
instructions? AFAIK, you can inhibit the vectorizers by setting the target
information to disallow vector instructions, I'd think that other passes
would do the same.

>  We're always going
>   to scalarise eventually, whether it's at the IR level or at the CodeGen
>   level, and doing it at the IR level is preferable because it exposes more
>   optimisation opportunities.

This is a good point, but still strikes me as a front-end option. There are
many front-end options that are enabled by default on certain targets.

  Although the pass is added to the PassManagerBuilder by default, it
> doesn't
>   do anything unless the target wants it to.

It should be a matter of features, not targets. Anyway, is there any other
pass that has this kind of target-specific behaviour?

I'd prefer if the code-owner of some area more relevant to the pass manager
would give his/her input.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131113/06a0b3c2/attachment.html>

More information about the llvm-commits mailing list