[llvm-dev] Loop Distribution pass

Saito, Hideki via llvm-dev llvm-dev at lists.llvm.org
Thu Sep 13 10:33:18 PDT 2018


Sorry for jumping from
	http://lists.llvm.org/pipermail/llvm-dev/2018-September/125853.html
but this is relevant. Sorry for not responding to that sooner. I was thinking about a longer reply, and time flied too quickly.

>But, as I said back then, before we do so, we need to understand
>exactly where to put it. That will depend on what other passes will
>actually use it and if we want it to be a utility class or an analysis
>pass, or both.
>
>Have you compiled a list of passes that could benefit from such a move?

Many loop optimizers (Transforms) can benefit from knowing whether the loop is legal to vectorize (or loop will vectorize). Distribution and fusion are clear examples. Vectorizer has a lot in common with unroll and jam, and we should definitely share a lot. Where to place these analyses is debatable, but my preference is having them under the Analysis tree since they are indeed analysis and in principle they shouldn't depend on Transform. I think we should start from a utility but should implement it in such a way to make it easy to convert to an analysis pass.

Thanks,
Hideki

-----Original Message-----
From: Renato Golin [mailto:renato.golin at linaro.org] 
Sent: Thursday, September 13, 2018 10:10 AM
To: Saito, Hideki <hideki.saito at intel.com>
Cc: Jonas Paulsson <paulsson at linux.vnet.ibm.com>; LLVM Dev <llvm-dev at lists.llvm.org>; Adam Nemet <anemet at apple.com>; Sanjay Patel <spatel at rotateright.com>; Ulrich Weigand <ulrich.weigand at de.ibm.com>; Zaks, Ayal <ayal.zaks at intel.com>; Caballero, Diego <diego.caballero at intel.com>; Florian Hahn <florian.hahn at arm.com>
Subject: Re: Loop Distribution pass

On Thu, 13 Sep 2018 at 18:03, Saito, Hideki <hideki.saito at intel.com> wrote:
> In short, my preference is to make vectorizer's analysis more usable by other xforms than making more and more loop xforms happen inside LV.

Agreed! I wasn't alluding to moving the analysis inside LV, just using it inside a V2V transform to find more options to vectorise.

--renato


More information about the llvm-dev mailing list