<div dir="ltr"><div class="gmail_extra"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div>Hello Tobias,</div></div><div><br></div><div>Please see my comments below.</div><div><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="gmail_quote">On Wed, Jun 22, 2016 at 10:45 PM, Tobias Grosser <span dir="ltr"><<a href="mailto:tobias@grosser.es" target="_blank">tobias@grosser.es</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="">On 06/20/2016 02:00 PM, Utpal Bora wrote:<br>
> Dear Community,<br>
><br>
><br>
> I would like to summarize my work till date for GSoC 2016.<br>
<br>
</span>Hi Utpal,<br>
<br>
thank you for this update.<br>
<span class=""><br>
> Till the current phase of my project, I have mostly focused on<br>
> developing the necessary infrastructure to use analysis results from<br>
> Polly in LLVM.<br>
><br>
><br>
> Initial plan as mentioned in the proposal:<br>
><br>
> For the first month:-<br>
><br>
</span>> 1.<br>
<span class="">><br>
> Decouple ScopInfo pass from Polly’s pass chain and provide<br>
> capability to create SCoP(Static Control Parts) objects from<br>
> arbitrary SESE regions.<br>
><br>
</span>> 2.<br>
<span class="">><br>
> Implement new passes ScopInfoWrapperPass and<br>
> DependenceInfoWrapperPass as Function Passes.<br>
><br>
</span>> 3.<br>
<span class="">><br>
> Provide an interface to Polly’s dependence analysis which can be<br>
> directly queried from LLVM transformation passes such as Loop<br>
> Vectorizer.<br>
<br>
</span>This seems to have been gone very nicely. I see that some of the patches<br>
are still in the review process. Could you elaborate on their status and<br>
what is still needed to get them committed.<br>
<span class=""><br></span></blockquote><div>Patches D20912 and D20962 are ready for commit. </div><div>For patches D21105 and D21486 I am working on review comments and will be ready for commit by this weekend.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span class="">
<br>
> For the next phase:-<br>
><br>
</span>> 4.<br>
<span class="">><br>
> Cache the dependences computed by Polly for a given SCoP and provide<br>
> methods to invalidate the analysis results when the SCoP changes.<br>
><br>
</span>> 5.<br>
<span class="">><br>
> Demonstrate the power and usefulness of the interface by integrating<br>
> it with Loop Vectorizer or other clients, for example, client that<br>
> requires loop trip count, etc.<br>
><br>
><br>
> Current Status:<br>
><br>
</span>> 1.<br>
<span class="">><br>
> Decoupling SCoP object creation from pass logic is complete and has<br>
</span>> been addressed under D20770 <<a href="http://reviews.llvm.org/D20770" rel="noreferrer" target="_blank">http://reviews.llvm.org/D20770</a>>, D20831<br>
> <<a href="http://reviews.llvm.org/D20831" rel="noreferrer" target="_blank">http://reviews.llvm.org/D20831</a>>and D20912<br>
> <<a href="http://reviews.llvm.org/D20912" rel="noreferrer" target="_blank">http://reviews.llvm.org/D20912</a>>review items. Patches have been<br>
> accepted and committed.<br>
><br>
> 2.<br>
<span class="">><br>
> Implemented two new function passes in Polly namely<br>
</span>> ScopInfoWrapperPass (D20962 <<a href="http://reviews.llvm.org/D20962" rel="noreferrer" target="_blank">http://reviews.llvm.org/D20962</a>>) and<br>
> DependenceInfoWrapperPass (D21105 <<a href="http://reviews.llvm.org/D21105" rel="noreferrer" target="_blank">http://reviews.llvm.org/D21105</a>>).<br>
<span class="">> These are required to bypass the RegionPassManager.<br>
><br>
</span>> 1.<br>
<span class="">><br>
> ScopInfoWrapperPass addresses creating SCoP objects for the<br>
> whole function.<br>
><br>
</span>> 2.<br>
<span class="">><br>
> DependenceInfoWrapperPass addresses constructing polyhedral<br>
> dependences for all the SCoP objects of a function.<br>
><br>
</span>> 3.<br>
<span class="">><br>
> These patches are currently under review and I am incorporating<br>
> changes as suggested by the Polly community.<br>
><br>
</span>> 4.<br>
<span class="">><br>
> Implemented first version of an interface to Polly's analysis<br>
> passes- PolyhedralInfo pass (D21486<br>
</span>> <<a href="http://reviews.llvm.org/D21486" rel="noreferrer" target="_blank">http://reviews.llvm.org/D21486</a>>). Implemented isParallel(Loop *)<br>
<span class="">> interface to check parallelism of a loop.<br>
><br>
><br>
> Pending Work:<br>
><br>
</span>> 1.<br>
<span class="">><br>
> Complete the interface - PolyhederalInfo pass. Currently I am<br>
> working on providing more interfaces to check whether a loop is<br>
> vectorizable or not and to get loop trip count.<br>
><br>
</span>> *<br>
><br>
> isVectorizable(Loop *L, *MinDepDistance)<br>
><br>
> *<br>
><br>
> getLoopTripCount(Loop *)<br>
><br>
> 2.<br>
<span class="">><br>
> Work on caching Polly's analysis results properly and provide<br>
> methods to invalidate the analysis results when the SCoP changes.<br>
><br>
</span>> 3.<br>
<span class="">><br>
> Demonstrate the power and usefulness of the interface by integrating<br>
> it with Loop Vectorizer.<br>
><br>
><br>
> Below are the list of patches I sent during this period:-<br>
><br>
</span>> D20770 <<a href="http://reviews.llvm.org/D20770" rel="noreferrer" target="_blank">http://reviews.llvm.org/D20770</a>>, D20831<br>
> <<a href="http://reviews.llvm.org/D20831" rel="noreferrer" target="_blank">http://reviews.llvm.org/D20831</a>>, D20912<br>
> <<a href="http://reviews.llvm.org/D20912" rel="noreferrer" target="_blank">http://reviews.llvm.org/D20912</a>>, D20962<br>
> <<a href="http://reviews.llvm.org/D20962" rel="noreferrer" target="_blank">http://reviews.llvm.org/D20962</a>>, D21105<br>
> <<a href="http://reviews.llvm.org/D21105" rel="noreferrer" target="_blank">http://reviews.llvm.org/D21105</a>>, D21486 <<a href="http://reviews.llvm.org/D21486" rel="noreferrer" target="_blank">http://reviews.llvm.org/D21486</a>><br>
<span class="">><br>
><br>
> I thank Johannes, Tobias, Michael, Ether and others for all the<br>
> support/feedback/advises. Especially, Johannes for the time spent in<br>
> hangouts, which we have been having two times a week.<br>
<br>
</span>Very nice, indeed and thanks Johannes for taking the time for such close<br>
mentoring. To make sure we are all up-to-date it would be great if you<br>
could send brief meeting notes that summarize your hangout discussions.<br>
<br></blockquote><div>Ok, I will send the notes form now on. Some of the notes are maintained <a href="https://drive.google.com/folderview?id=0B6y_K1BShACaZHVuTHF5ZWdmeUE&usp=sharing">here</a>. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
Best,<br>
Tobias<br>
</blockquote></div><br></div><div class="gmail_extra">Thank you.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Regards,</div><div class="gmail_extra">Utpal Bora</div></div>