<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 3/10/15 7:25 AM, Rahul Jain wrote:<br>
    </div>
    <blockquote
cite="mid:CADZ2VqD3KP_YXq5K1t=7kwnWbzKLhF6KvP6pKzBPU0J=EEVEvg@mail.gmail.com"
      type="cite">
      <meta http-equiv="Context-Type" content="text/html; charset=UTF-8">
      <p dir="ltr">This landed in my spam folder so resending it to the
        list! </p>
    </blockquote>
    <br>
    My first question is, "What is to be gained from the extra
    precision?"  Will this help some optimization that already exists
    within LLVM?  Will it help optimize memory safety checks by finding
    more type-safe memory objects (ala SAFECode)?  Will it enable
    outside projects to build better static analysis and debugging
    tools?<br>
    <br>
    Different uses of points-to/alias analysis place different
    constraints on the precision/performance tradeoff.  The intended use
    also changes the interface (some interfaces just want alias pairs
    while others want a points-to/shape graph).<br>
    <br>
    A strong proposal for an alias analysis project should communicate
    the intended use of the alias analysis, why that intended use is
    useful, and why the extra precision is needed.<br>
    <br>
    Regards,<br>
    <br>
    John Criswell<br>
    <br>
    <br>
    <blockquote
cite="mid:CADZ2VqD3KP_YXq5K1t=7kwnWbzKLhF6KvP6pKzBPU0J=EEVEvg@mail.gmail.com"
      type="cite">
      <div class="gmail_quote">On Mar 10, 2015 2:12 PM, "Pratik Bhatu"
        <<a moz-do-not-send="true" href="mailto:cs12b1010@iith.ac.in">cs12b1010@iith.ac.in</a>>
        wrote:<br type="attribution">
        <blockquote class="gmail_quote">
          <div>Hi all,</div>
          <div>
            <div><br>
            </div>
            <div>I'm a 3rd year CSE B.Tech student and have been
              studying LLVM since the past year. I have written a pass
              for doing register allocation as part of my course project
              and have also been studying LLVM code sections related to
              SSA construction, dominance frontiers,etc. I also made
              some contributions to the Polly project.</div>
            <div><br>
            </div>
            <div>Currently I am interested in improving the existing
              alias analysis infrastructure as part of my GSoC-15
              project. The current pointer analyses in LLVM (basicaa,
              cflaa etc.) compute imprecise information as none of them
              are flow-sensitive. The aim of my project is to implement
              a pass that computes more precise points-to pairs that is
              both flow-sensitive as well as context-sensitive. This
              method has been described in 
              <a moz-do-not-send="true">Liveness-Based Pointer Analysis</a> [1] and
              has already been implemented in the <a
                moz-do-not-send="true">GCC compiler</a>.</div>
            <div><br>
            </div>
            <div>Most of the information in traditional
              context-sensitive algorithms is useless because it
              involves variables that are dead. The paper however relies
              on liveness information at the construction time of
              points-to-sets to prune the useless information. This
              method makes it comparable to a context-insensitive
              algorithm in cost.</div>
            <div><br>
            </div>
            <div>This would be an inter-procedural pass and would be
              implemented in the existing AliasAnalysis infrastructure
              by implementing  all the methods of AliasAnalysis class
              similar to the existing alias analysis passes in LLVM like
              basicaa and CFL-AA. I am looking for feedback and on
              directions on how to proceed with this.</div>
            <div><br>
            </div>
            <div>[1] Uday P. Khedker, Alan Mycroft, and Prashant Singh
              Rawat. 2012. “Liveness-Based pointer analysis”. In
              Proceedings of the 19th international conference on Static
              Analysis (SAS'12), Antoine Miné and David Schmidt (Eds.).
              Springer-Verlag, Berlin, Heidelberg, 265-282.</div>
          </div>
          <div><br>
          </div>
          <div><br>
          </div>
          <div>
            <div>Regards</div>
            <div>Pratik Bhatu<br>
              <div>Bachelors of Technology, 3rd Year</div>
              <div>Computer Science and Engineering</div>
              <div>IIT Hyderabad</div>
              <div>+91 961 905 6833</div>
            </div>
          </div>
          <br>
          _______________________________________________<br>
          LLVM Developers mailing list<br>
          <a moz-do-not-send="true" href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a> 
                 <a moz-do-not-send="true"
            href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br>
          <a moz-do-not-send="true"
            href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
          <br>
        </blockquote>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a class="moz-txt-link-freetext" href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a>
</pre>
    </blockquote>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
John Criswell
Assistant Professor
Department of Computer Science, University of Rochester
<a class="moz-txt-link-freetext" href="http://www.cs.rochester.edu/u/criswell">http://www.cs.rochester.edu/u/criswell</a></pre>
  </body>
</html>