[llvm-dev] (loop) passes disabled by default

Sjoerd Meijer via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 12 08:56:01 PDT 2021


Just wanted to share an observation of something I realised last week. We have quite a few passes that are disable by default. Just looking at the loop passes, then all of these are off by default:

LoopDistribute
LoopFlatten
LoopInterchange
LoopReroll
LoopUnrollAndJam
LoopVersioningLICM
SimpleLoopUnswitch

Some are probably more specific for a use-case and it's just good to have certain transformations in our toolbox, but I guess what I want to say is that it looks like there are opportunities to get more of these on by default, although I appreciate of course that will involve a bit of work. For example,  LoopFlatten (mea culpa) needs a correctness fix, but other than that perhaps not difficult to get enabled. Not sure if LoopReroll is just a benchmark special, but from a quick look that also needs a correctness fix. Interchange and UnrollAndJam would for example be really interesting to get on by default, but not sure if tricky cost modelling business prevents that at the moment. LoopDistribute seems to be getting some TLC (D99596), and don't know much about the others.

(Apologies if this has been discussed in the Loop Opt WG, I couldn't find anything after a quick look)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210412/f90cd3f3/attachment-0001.html>


More information about the llvm-dev mailing list