<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>