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

Philip Reames via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 12 11:55:01 PDT 2021


Thanks for surfacing this again.


My take here is that this is due to the vast difference in difficulty 
between implementing something which works on some examples, and 
something which works on all examples.  :)  You mention the heuristic 
problem - which several of these passes have in spades - but there's 
also a large number of latent correctness bugs in the various 
off-by-default passes.  The work to get these enabled isn't infinite, 
but it's also not small.  To make substantial progress, you'd need to 
find someone willing to put substantial (months+) of effort into 
stabilization.


As an aside, SimpleLoopUnswitch is enabled by default in the new pass 
manager.  InductiveRangeCheckElimination (e.g. iteration set splitting), 
also deserves to be on this list.


Philip


On 4/12/21 8:56 AM, Sjoerd Meijer via llvm-dev wrote:
> 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)
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210412/63dd7d3e/attachment.html>


More information about the llvm-dev mailing list