[llvm-dev] [GSoC 2016] Polly as an Analysis pass - Midterm report
Tobias Grosser via llvm-dev
llvm-dev at lists.llvm.org
Wed Jun 22 10:15:54 PDT 2016
On 06/20/2016 02:00 PM, Utpal Bora wrote:
> Dear Community,
>
>
> I would like to summarize my work till date for GSoC 2016.
Hi Utpal,
thank you for this update.
> Till the current phase of my project, I have mostly focused on
> developing the necessary infrastructure to use analysis results from
> Polly in LLVM.
>
>
> Initial plan as mentioned in the proposal:
>
> For the first month:-
>
> 1.
>
> Decouple ScopInfo pass from Polly’s pass chain and provide
> capability to create SCoP(Static Control Parts) objects from
> arbitrary SESE regions.
>
> 2.
>
> Implement new passes ScopInfoWrapperPass and
> DependenceInfoWrapperPass as Function Passes.
>
> 3.
>
> Provide an interface to Polly’s dependence analysis which can be
> directly queried from LLVM transformation passes such as Loop
> Vectorizer.
This seems to have been gone very nicely. I see that some of the patches
are still in the review process. Could you elaborate on their status and
what is still needed to get them committed.
> For the next phase:-
>
> 4.
>
> Cache the dependences computed by Polly for a given SCoP and provide
> methods to invalidate the analysis results when the SCoP changes.
>
> 5.
>
> Demonstrate the power and usefulness of the interface by integrating
> it with Loop Vectorizer or other clients, for example, client that
> requires loop trip count, etc.
>
>
> Current Status:
>
> 1.
>
> Decoupling SCoP object creation from pass logic is complete and has
> been addressed under D20770 <http://reviews.llvm.org/D20770>, D20831
> <http://reviews.llvm.org/D20831>and D20912
> <http://reviews.llvm.org/D20912>review items. Patches have been
> accepted and committed.
>
> 2.
>
> Implemented two new function passes in Polly namely
> ScopInfoWrapperPass (D20962 <http://reviews.llvm.org/D20962>) and
> DependenceInfoWrapperPass (D21105 <http://reviews.llvm.org/D21105>).
> These are required to bypass the RegionPassManager.
>
> 1.
>
> ScopInfoWrapperPass addresses creating SCoP objects for the
> whole function.
>
> 2.
>
> DependenceInfoWrapperPass addresses constructing polyhedral
> dependences for all the SCoP objects of a function.
>
> 3.
>
> These patches are currently under review and I am incorporating
> changes as suggested by the Polly community.
>
> 4.
>
> Implemented first version of an interface to Polly's analysis
> passes- PolyhedralInfo pass (D21486
> <http://reviews.llvm.org/D21486>). Implemented isParallel(Loop *)
> interface to check parallelism of a loop.
>
>
> Pending Work:
>
> 1.
>
> Complete the interface - PolyhederalInfo pass. Currently I am
> working on providing more interfaces to check whether a loop is
> vectorizable or not and to get loop trip count.
>
> *
>
> isVectorizable(Loop *L, *MinDepDistance)
>
> *
>
> getLoopTripCount(Loop *)
>
> 2.
>
> Work on caching Polly's analysis results properly and provide
> methods to invalidate the analysis results when the SCoP changes.
>
> 3.
>
> Demonstrate the power and usefulness of the interface by integrating
> it with Loop Vectorizer.
>
>
> Below are the list of patches I sent during this period:-
>
> D20770 <http://reviews.llvm.org/D20770>, D20831
> <http://reviews.llvm.org/D20831>, D20912
> <http://reviews.llvm.org/D20912>, D20962
> <http://reviews.llvm.org/D20962>, D21105
> <http://reviews.llvm.org/D21105>, D21486 <http://reviews.llvm.org/D21486>
>
>
> I thank Johannes, Tobias, Michael, Ether and others for all the
> support/feedback/advises. Especially, Johannes for the time spent in
> hangouts, which we have been having two times a week.
Very nice, indeed and thanks Johannes for taking the time for such close
mentoring. To make sure we are all up-to-date it would be great if you
could send brief meeting notes that summarize your hangout discussions.
Best,
Tobias
More information about the llvm-dev
mailing list