<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    On 6/27/11 7:46 PM, Gregory Malecha wrote:
    <blockquote
      cite="mid:BANLkTinMqaaoaNNNKbBNjGAbzUtXEP6kkw@mail.gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      Hello,<br>
      <br>
      Is the SVA codebase publically available, and if so, where can I
      find it?<br>
    </blockquote>
    <br>
    It depends upon which part of SVA you want.<br>
    :)<br>
    <br>
    The memory safety analysis and transform passes are publicly
    available in the SAFECode and Automatic Pool Allocation source code
    repositories.  Directions on accessing SAFECode's SVN repository can
    be found here: <a class="moz-txt-link-freetext" href="http://sva.cs.illinois.edu/downloads.html">http://sva.cs.illinois.edu/downloads.html</a>.<br>
    <br>
    This code that we used in our two SVA papers was done with LLVM 1.9
    and is in the release_19 branches of the safecode and poolalloc
    projects.  We have not maintained that code, so I doubt you'll find
    it useful.<br>
    <br>
    The transforms used for user-space applications is maintained and
    works with LLVM 2.7 (this is mainline safecode and poolalloc).  In
    addition, we are moving some parts of SAFECode (those that don't
    rely on DSA) into LLVM mainline.  There is currently a patch pending
    review; it essentially provides Jones-Kelley/Ruwase-Lam style memory
    safety with some optional debug information support.  We'll add in
    more non-DSA based optimizations after the initial patch is
    reviewed.  The DSA-based optimizations will become part of a special
    libLTO that will reside out of mainline LLVM for the time being.<br>
    <br>
    The second component of SVA is the virtual instruction set
    implementation which comes as two parts: SVA and SVA-OS.  SVA is
    just LLVM, and so that is publicly available.  SVA-OS is the set of
    instructions that abstract away the operations like context
    switching and MMU configuration; the run-time library implementation
    of SVA-OS and the port of the Linux kernel to SVA-OS is not
    currently available publicly as we have not yet had time to polish
    them up a bit, and with LLVM's ability to handle inline assembly
    code, there's less need for them by the LLVM community.  If you need
    this code for research, please let me know off-list; I can ask my
    advisor if we can provide a copy to you.<br>
    <br>
    -- John T.<br>
    <br>
    <blockquote
      cite="mid:BANLkTinMqaaoaNNNKbBNjGAbzUtXEP6kkw@mail.gmail.com"
      type="cite"><br>
      Thanks.<br clear="all">
      <br>
      -- <br>
      gregory malecha<br>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
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>
  </body>
</html>