[llvm-dev] [RFC] Polly Status and Integration

Tobias Grosser via llvm-dev llvm-dev at lists.llvm.org
Wed Sep 13 05:26:55 PDT 2017

On Wed, Sep 13, 2017, at 13:43, Hal Finkel wrote:
> On 09/13/2017 02:16 AM, C Bergström wrote:
> > A completely non-technical point, but what's the current "polly" 
> > license? Does integrating that code conflict in any way with the work 
> > being done to relicense llvm?
> Good question. I discussed this explicitly with Tobias, and his general 
> feeling is that relicensing isl again would be doable if necessary (we 
> already did this once, to an MIT license, in order to enable better LLVM 
> integration).

Right. isl was relicensed to MIT following an advice from Chris Lattner.
We got written consent from all contributors and copyright owners. If
need arises -- we can look into this as part of the LLVM relicensing
process -- with even better legal advice.

> > Does adding polly expose any additional legal risks? Some people from 
> > Reservoir labs have explicitly stated to me that some of their patents 
> > target polyhedral optimizations. You should almost certainly review 
> > their portfolio or contact them.
> >
> > If at some point someone wants to add real loop optimizations - will 
> > there be a conflict?
> Can you define "real loop optimizations"?
> >
> > What's the DWARF look like after poly transformations?
> Right now, Polly essentially changes loop structures around existing 
> basic blocks (so the debug info on the loop bodies should be okay). Like 
> most of our other loop optimizations, induction variables don't fare 
> very well (an area where improvement is generally needed).


> > The talk about performance is pretty light - It would be good to get 
> > something besides just a handful of spotlight known codes. Also code 
> > size, compilation speed. etc
> This is a good point, and more information should definitely be provided 
> in this regard. The larger question, from my perspective, is will the 
> infrastructure significantly help us get from where we are to where we 
> want to be?
> > ------------
> > flag bikeshed - If it's not ready for -O3 - create specific flags to 
> > specific poly passes. Creating yet another micro flag like -O3poly 
> > just doesn't make sense to me. (keep it simple.) When it's really 
> > really ready, enable it with the rest of the loop heavy passes.
> >
> Regarding transformations, this is also my preference. We'll reach a 
> much smaller audience if special flags are required. There are also two 
> aspects of "ready" here: it might be ready as an analysis infrastructure 
> well before we can enable loop restructuring by default.

Sure, that's the ultimate goal and clearly something we should shoot for


More information about the llvm-dev mailing list