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

James Molloy via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 12 07:03:00 PDT 2015


jmolloy added a comment.

Hi Adam, Renato,

Thanks for your review and sorry for the time it took to get back to you.

I think I agree with all your comments. The LoopEditor structure is a bit of a monolith - I hadn't really noticed as I was designing it. I like your idea of composable operations more (and it shows that I should re-read a design patterns book sometime soon!). I confess that I did see LoopVersioning as a trivial user of LoopEditor, but I do understand your reservations here.

I'm also not pushing for the entire API to pushed in in one go - it was just, as you said, describing the end goal.

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).
- [My own requirement] Make sure loopversioning works with non-leaf loops.
- Create a new class LoopWidening.
  - I feel like this should be an abstract base class with concrete subclasses "LoopVectorizing" and "LoopInterleaving".
- [Later] create a similar LoopPeeling class, that hopefully should sit on top of the other two.

The names are up for bikeshedding.

This seems to make review much easier. What do you think of this as a plan?

Cheers,

James


Repository:
  rL LLVM

http://reviews.llvm.org/D11530





More information about the llvm-commits mailing list