<div dir="ltr">Hi John,<div><br><div>Many thanks for the suggestion.</div><div>I read the user manual and the source code of the Local DSA pass, and it seems that the output of the Local pass is a set of graphs for some further analysis.</div>
<div><br></div><div>And my requirements are:</div><div>1. I need a alias analysis pass that implements the universal AA->alias(Pointer, size, Inst, ...), here the "Inst" is obtained from previous process and the alias function is detecting if "Pointer" and "Inst" are aliasing.</div>
<div>2. The "Inst" here is an Instruction* accessing a global variable.</div><div>3. Right now the "Pointer" is from the iteration on the Instructions of each function. </div><div><br></div><div>So my questions are:</div>
<div>1. How can i take use of the graphs as they contain the "pointing-to" relationship among different objects? </div><div>2. Which api or data structures in DSA can be used to get the useful information?</div>
<div><br></div><div>Thanks very much John and have a good night~!</div><div><br></div><div>Dan.</div><div><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Jun 15, 2014 at 2:45 PM, John Criswell <span dir="ltr"><<a href="mailto:criswell@illinois.edu" target="_blank">criswell@illinois.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><div class="">
<div>On 6/15/14, 12:10 PM, Daniel Guo wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi Criswell,
<div>Thanks for the reply.</div>
<div>I am looking for a pass for the intra-procedural alias
analyzing, as i am working on multithreaded debugging and
looking for a way to pick up instructions from different
threads accessing the same global variable, and is Steensguard
workable for this scenario? or any other suggestions?</div>
</div>
</blockquote>
<br></div>
The local DSA pass provides a shape graph of each function, and it
uses the Incomplete and External flags to mark for which nodes in
the shape graph it does not have complete information. I think you
could use the Local DSA pass directly to determine which
instructions are accessing global variables.<div class=""><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div><br>
</div>
<div>I also find that the "rDSA" folder is not included in the
Makefile, and this means the -dsa-aa pass is still not
reliable and probably i cannot use it, right?</div>
</div>
</blockquote>
<br></div>
The rDSA directory contained an altered version of the DSA
implementation. We eventually abandoned it and removed it. The
code you found in rDSA either is or was at some point part of DSA.<br>
<br>
Regards,<br>
<br>
John Criswell<div class=""><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div><br>
</div>
<div>Thanks,</div>
<div><br>
</div>
<div>Dan.</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Sun, Jun 15, 2014 at 12:54 PM, John
Criswell <span dir="ltr"><<a href="mailto:criswell@illinois.edu" target="_blank">criswell@illinois.edu</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>
<div>On 6/13/14, 8:57 PM, Daniel Guo wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div style="font-family:arial,sans-serif;font-size:12.727272033691406px">Deal
all,</div>
<div style="font-family:arial,sans-serif;font-size:12.727272033691406px">Recently
i am searching for a intra-procedure alias
analysis pass and the -ds-aa pass seems to be the
one i am looking for.</div>
</div>
</blockquote>
<br>
</div>
Intra-procedural or inter-procedural?
<div><br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div style="font-family:arial,sans-serif;font-size:12.727272033691406px">However,
i find this post described that the rDSA code in
PoorAlloc project was abandoned before ... </div>
<a href="https://groups.google.com/d/topic/llvm-dev/FMLmIh9Nz84/discussion" style="font-family:arial,sans-serif;font-size:12.727272033691406px" target="_blank">https://groups.google.com/d/topic/llvm-dev/FMLmIh9Nz84/discussion</a><br style="font-family:arial,sans-serif;font-size:12.727272033691406px">
<div style="font-family:arial,sans-serif;font-size:12.727272033691406px">But
some other guys were interested in it and John
Criswell also made a request in bug database on
this topic.</div>
<div style="font-family:arial,sans-serif;font-size:12.727272033691406px">
Now after 3 years, what's the status of this
issue? Are there still any problems in the pass if
i compile and run it?</div>
</div>
</blockquote>
<br>
</div>
I do not believe that the status has changed. I believe
the -dsa-aa pass in DSA is still removed and has not been
resurrected (at least not with a patch that applied
cleanly to the release_32 branch).<br>
<br>
If someone wants to resurrect -dsa-aa with a patch that
cleanly applies to the release_32 branch or the trunk
branch, I'll review it and apply it.<br>
<br>
Regards,<br>
<br>
John Criswell<br>
<br>
<br>
<blockquote type="cite">
<div dir="ltr">
<div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><br>
</div>
<div style="font-family:arial,sans-serif;font-size:12.727272033691406px">
Thanks,</div>
<div style="font-family:arial,sans-serif;font-size:12.727272033691406px"><br>
</div>
<div style="font-family:arial,sans-serif;font-size:12.727272033691406px">Daniel.</div>
</div>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
LLVM Developers mailing list
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a> <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a>
</pre>
</blockquote>
<br>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div></div>
</blockquote></div><br></div>