[LLVMdev] Using DependenceAnalysis::depends

Preston Briggs preston.briggs at gmail.com
Fri Jan 17 16:35:53 PST 2014


Here's a thread that talk about the basic problems:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130701/179665.html
I think it's a pretty big effort to fix it all, but I haven't been able to
put in any time on it, so I may be overly pessimistic.

Sebastian Pop wrote a delinearizer, so at least that part is done.
See [llvm] r194527 - delinearization of arrays

Preston





On Thu, Jan 16, 2014 at 3:33 AM, César <divcesar at gmail.com> wrote:

> Hello Preston,
>
> can you elaborate what exactly is the problem with DependenceAnalysis
> or point me to a thread/bug report discussing it? Do you think that
> this will require a large effort? I would like to put some time on
> this and also on the graph dep. builder.
>
>
> César.
>
>
> 2013/12/27 Preston Briggs <preston.briggs at gmail.com>:
> > Hi,
> >
> > There's no implementation yet of the dependence graph builder.
> >
> > You can use DependenceAnalysis to get the info you want by expensively
> > testing all pairs of memory references.
> >
> > What you call "intra iteration" are "loop-independent" dependences, and
> are
> > tested at the same time as the loop-carried dependences.
> >
> > (In the old days, people tried to say "inter" and "intra", but it was too
> > confusing during talks. It was much clearer to say loop independent and
> loop
> > carried.)
> >
> > I know of no other check-in code that uses DependenceAnalysis. Which is
> > appropriate; it's not ready for use (that is, it's incorrect). I
> > misunderstood how GEPs work, so it will sometimes miss existing
> dependences.
> >
> > Preston
> >
> >
> >
> >
> > On Fri, Dec 27, 2013 at 8:46 AM, Snehasish Kumar <ska124 at sfu.ca> wrote:
> >>
> >> Hi
> >>
> >> I want to analyse the memory dependencies which exist in a loop at an
> >> intra iteration as well as inter iteration (loop carried dependencies).
> I
> >> looked at the DependenceAnalysis implementation which returns a lot of
> the
> >> information I require (based on a prior AliasAnalysis pass), however I
> need
> >> to pass the Src and Dst instructions in program order.
> >>
> >> I was wondering how I can collect all the memory access pairs from the
> >> basic blocks within the CFG of the loop body which would allow me to
> know
> >> which pairs are RAW/WAR/WAW. It seems related to the approach outlined
> here
> >> :
> >>
> https://sites.google.com/site/parallelizationforllvm/building-the-dependence-graph
> >>
> >> Is there any existing implementation I can take a look at?
> >> It seems that the only the DependenceAnalysis::depends is only called in
> >> the dumpExampleDependence() function (checked using cscope). Is there no
> >> other module which uses this class?
> >>
> >> Thanks,
> >> Snehasish
> >
> >
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140117/b2f60d1b/attachment.html>


More information about the llvm-dev mailing list