<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>That looks good, I already got DSA to run. But now there are thousands of possibilities to compare the pointer arguments of two functions in terms of data dependence.</div><div>What is the most "elegant" way?</div><div><br></div><div>As a first case I have a pair of functions, function A and function B that are both called in function X. Now I want to check if there is a data dependence between them</div><div>with DSA. How would your approach look like?</div><div><br></div><div>Ciao, Andreas</div><br><div><div>Am 24.06.2011 um 17:45 schrieb John Criswell:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">For DSA, you will want to read the documentation in the docs subdirectory of the poolalloc project (if you don't know how to download poolalloc, please feel free to ask on the list).  You may also want to read the paper on DSA (<a href="http://llvm.org/pubs/2007-06-10-PLDI-DSA.html">http://llvm.org/pubs/2007-06-10-PLDI-DSA.html</a>) and Chris Lattner's thesis (<a href="http://llvm.org/pubs/2005-05-04-LattnerPHDThesis.html">http://llvm.org/pubs/2005-05-04-LattnerPHDThesis.html</a>).<br><br>Note that DSA is a unification-based points-to analysis (among other things): it will generate for you a graph in which each node represents an abstract memory object and the edges represent pointers between memory objects (for example, it can tell you that field 5 of abstract memory object A points to the second field of abstract memory object B).  You can build things like reaching definitions analysis, alias analysis, etc., etc. using DSA, but it doesn't do these things for you "out of the box."<br><br>-- John T.</span></blockquote></div><br></body></html>