<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 11/1/15 1:15 PM, Aswin kumar via
      llvm-dev wrote:<br>
    </div>
    <blockquote
cite="mid:CAJ0JsiCjw0ktMYb8AWKibpjAy_cVH24zxm00YUg7eL==jS26nA@mail.gmail.com"
      type="cite">
      <meta http-equiv="Context-Type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>
          <div>
            <div>Hi,<br>
              <br>
            </div>
            I am a graduate student in computer science.I have taken a
            programming languages course this semester and I am having
            great fun building interpreters.I am planning to build toy
            compilers in the winter.I would love to participate in GSOC
            2016 contributing to LLVM.Could anyone let me know desirable
            skills should be developed to contribute to LLVM ?  Also I
            would like to know the open projects in LLVM for Google
            Summer Of Code 2016.<br>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    What skills you need for GSoC depends entirely upon what sort of
    LLVM-based projects you want to do.  Many LLVM-based projects
    requiring knowing how to write LLVM passes and doing either analysis
    or optimization on the LLVM IR.  For such projects, I'd recommend
    learning how to write an LLVM pass (which is well documented at
    <a class="moz-txt-link-freetext" href="http://llvm.org/docs/WritingAnLLVMPass.html">http://llvm.org/docs/WritingAnLLVMPass.html</a>.<br>
    <br>
    However, some GSoC students work on Clang (and therefore need to
    understand how to analyze and manipulate Clang's AST).  Others may
    work on the code generator portions of LLVM (which requires
    understanding the MachineInstr IR or the MC layer).<br>
    <br>
    I recommend that you learn whatever interests you.  When it comes
    time to worry about GSoC, you can then suggest a project that
    leverages what you've learned.<br>
    <br>
    As far as GSoC projects, I think it's too early to have a list of
    those up yet.  I think we'll have a more up-to-date list in the
    spring.  That said, if you're looking for projects, you can look at
    the open projects page at <a class="moz-txt-link-freetext" href="http://llvm.org/OpenProjects.html">http://llvm.org/OpenProjects.html</a>.  Fixing
    open bugs in the LLVM and Clang bug database would also be a good
    way to start learning about Clang and LLVM.  You can also look at
    LLVM sub-projects such as lldb, ldb, and Polly.<br>
    <br>
    As for myself, I tend to mentor projects that instrument programs in
    some way (usually to improve their security, but I've also mentored
    a performance-bug finding tool).  You can read about my work (nearly
    all of which uses LLVM) on my publications page at
    <a class="moz-txt-link-freetext" href="http://www.cs.rochester.edu/u/criswell/pubs.html">http://www.cs.rochester.edu/u/criswell/pubs.html</a> to get a sense of
    the sorts of things that interest me.  In a nutshell, I like
    security, and I like using compilers to change operating system
    kernel code.<br>
    <br>
    Regards,<br>
    <br>
    John Criswell<br>
    <br>
    <blockquote
cite="mid:CAJ0JsiCjw0ktMYb8AWKibpjAy_cVH24zxm00YUg7eL==jS26nA@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>
          <div><br>
          </div>
          Regards,<br>
        </div>
        Aswin.<br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</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>