[PATCH] D11530: RFC: LoopEditor, a high-level loop transform toolkit

James Molloy via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 13 00:17:59 PDT 2015


Hi Adam,

I'm glad we're converging on a way forward!

> I am not sure there is much code to be shared between LoopPeeling and
Widening.  Why do you think so?

Commonalities would be cloning all the blocks in a loop, detecting and
hooking up reductions/inductions, and modifying the loop trip count. But
you're right, "on top of" was not the right thing to say.

Cheers,

James

On Wed, 12 Aug 2015 at 21:49 Adam Nemet via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> anemet added a comment.
>
> Hi James,
>
> Thanks very much for considering my comments.  I agree with this direction
> overall.  I have a few specific comments below:
>
> > So it looks like this becomes:
>
> >
>
> > - Improvements to LoopVersioning to make LAA optional (choosing one loop
> or another shouldn't be tied to LAA - any predicate at all should do fine).
>
>
> Agreed.  Silviu's Assumption-based SCEV is already proposing to use
> LoopVer to host overflow checks.  I also have plans to add dynamic
> trip-count checks to allow a higher number of checks when we know the
> higher trip count will justify the the additional overhead.
>
> > - [My own requirement] Make sure loopversioning works with non-leaf
> loops.
>
>
> Makes sense.
>
> > - Create a new class LoopWidening.
>
> >   - I feel like this should be an abstract base class with concrete
> subclasses "LoopVectorizing" and "LoopInterleaving".
>
>
> There are certainly commonalities between interleaving and vectorization
> that we may need to be able leverage by delegating the differences to
> hooks.  I guess the way this shapes up will depend on the specifics of how
> the code will be split out from the Loop Vectorizer.  It will initially be
> probably pretty close to structure of code in the vectorizer.
>
> > - [Later] create a similar LoopPeeling class, that hopefully should sit
> on top of the other two.
>
>
> I am not sure there is much code to be shared between LoopPeeling and
> Widening.  Why do you think so?
>
> > The names are up for bikeshedding.
>
>
> Just for the record, I added the 'ing' ending to LoopVersioning to stress
> that I mean "version", the verb rather than the noun.
>
> Thanks again,
> Adam
>
>
> Repository:
>   rL LLVM
>
> http://reviews.llvm.org/D11530
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150813/7af84c2a/attachment.html>


More information about the llvm-commits mailing list