[LLVMdev] Using DependenceAnalysis::depends

Preston Briggs preston.briggs at gmail.com
Fri Dec 27 09:23:02 PST 2013


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131227/5b7d503f/attachment.html>


More information about the llvm-dev mailing list