<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 5/30/15 5:52 PM, Christian Convey
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAPfS4Zyy5Yns5ERxwL55xLoJ10KE38SXJ-nR+C8NXXKq8HC3aw@mail.gmail.com"
      type="cite">
      <meta http-equiv="Context-Type" content="text/html; charset=UTF-8">
      <div dir="ltr">Hi Will, 
        <div><br>
        </div>
        <div>John Criswell thought that perhaps you've gotten DSA (but
          not poolalloc) working with the mainline LLVM code.  If that's
          true, is that something you intend to share?  I for one would
          love to be able to use it.</div>
      </div>
    </blockquote>
    <br>
    To be clear, that code is *already* shared (i.e., I got it from the
    poolalloc repository on the llvm.org Subversion server).  My point
    about mentioning Will is that I think he's the one that updated
    poolalloc trunk to compile with LLVM trunk (i.e., he's the one we
    need to thank for moving DSA from LLVM 3.2 to LLVM mainline).<br>
    <br>
    Regards,<br>
    <br>
    John Criswell<br>
    <br>
    <blockquote
cite="mid:CAPfS4Zyy5Yns5ERxwL55xLoJ10KE38SXJ-nR+C8NXXKq8HC3aw@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div><br>
        </div>
        <div>- Christian</div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Sat, May 30, 2015 at 12:06 PM, John
          Criswell <span dir="ltr"><<a moz-do-not-send="true" href="mailto:jtcriswel@gmail.com" target="_blank">jtcriswel@gmail.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote">
            <div>
              <div>Dear Christian,<br>
                <br>
                First, I've never used CMake to build poolalloc.  I've
                always used the autoconf-based build system.  It is
                possible that the CMake files for poolalloc are broken. 
                I recommend using the autoconf-based build system.<br>
                <br>
                Second, you'll be pleased to know that someone (I think
                Will Dietz) has gotten DSA working with mainline LLVM. 
                The DSA code compiles, but not the Automatic Pool
                Allocation optimization code.  To put it another way,
                poolalloc/lib/DSA compiles and works but
                poolalloc/lib/PoolAllocate doesn't compile.  I took a
                snapshot of LLVM trunk and poolalloc trunk awhile ago
                and put it on Github for my students to use.  You can
                find it at <a moz-do-not-send="true" href="https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_jtcriswell_llvm-2Ddsa&d=AwMDaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=NjnhOfYCr4fvJwhI1odEYxPD5n0mP0XDb0H_yMTxG64&s=E8oOnT_-McyM8SeLPYRnd4OnY0b6ga9IRfSQ2uiPzK0&e=" target="_blank">https://github.com/jtcriswell/llvm-dsa</a>.<br>
                <br>
                Third, my group's work on DSA is demand-driven.  While
                several of my students are using DSA, I do not presently
                plan to have them maintain or improve DSA unless their
                projects require it (that said, I easily see projects
                that will require enhancing DSA, so this is subject to
                change).  To the best of my knowledge, no one is
                currently using or maintaining the Automatic Pool
                Allocation optimization.  I have no plans that require
                my group to use it or maintain it at present and don't
                foresee any in the near future.<br>
                <br>
                Finally, I've noticed a significant increase in the
                number of people wanting to use DSA in recent months.  I
                think this indicates a demand (I believe from the
                research community) for shape graph analysis and a call
                graph analysis that can handle function pointers.  I'd
                like to better understand who needs these features,
                which exact features they need, and whether they have
                any interest in helping support the analyses long term.<br>
                <br>
                To that end, I'd like to hold a BoF on points-to
                analysis/call graph analysis at this year's LLVM
                Developer's Meeting to see who is interested in these
                analyses, what they really need, and whether there is a
                way to build something that meets those needs that can
                be maintained long term.<br>
                <br>
                Regards,<br>
                <br>
                John Criswell
                <div>
                  <div class="h5"><br>
                    <br>
                    On 5/28/15 1:57 PM, Christian Convey wrote:<br>
                  </div>
                </div>
              </div>
              <blockquote type="cite">
                <div>
                  <div class="h5">
                    <div dir="ltr">
                      <div>I'm starting to play around with poolalloc
                        for the first time.  I tried to build it as
                        follows:</div>
                      <div>1) Clone llvm's git repo, and build it with
                        cmake + ninja.</div>
                      <div>2) cd .../llvm/projects</div>
                      <div>3) git clone <a moz-do-not-send="true" href="mailto:git@github.com:llvm-mirror/poolalloc.git" target="_blank">git@github.com:llvm-mirror/poolalloc.git</a></div>
                      <div><br>
                      </div>
                      <div>When I went to re-run ninja, (or even CMake
                        by itself), I get errors like the following
                        (truncated for brevity).  Any suggestions for
                        whether I'm trying to use the build system
                        incorrectly, vs. having an incompatible combo of
                        LLVM and poolalloc?</div>
                      <div><br>
                      </div>
                      <div>
                        <div>CMake Error at
                          cmake/modules/LLVMProcessSources.cmake:83
                          (message):</div>
                        <div>  Found unknown source file</div>
                        <div> 
                          /opt/clang-llvm/llvm/projects/poolalloc/runtime/PreRT/strdup.c</div>
                        <div><br>
                        </div>
                        <div><br>
                        </div>
                        <div>  Please update</div>
                        <div> 
                          /opt/clang-llvm/llvm/projects/poolalloc/runtime/PreRT/CMakeLists.txt</div>
                        <div><br>
                        </div>
                        <div><br>
                        </div>
                        <div>Call Stack (most recent call first):</div>
                        <div>  cmake/modules/LLVMProcessSources.cmake:54
                          (llvm_check_source_file_list)</div>
                        <div>  cmake/modules/AddLLVM.cmake:263
                          (llvm_process_sources)</div>
                        <div>  cmake/modules/AddLLVM.cmake:418
                          (llvm_add_library)</div>
                        <div> 
                          projects/poolalloc/runtime/PreRT/CMakeLists.txt:2
                          (add_llvm_library)</div>
                      </div>
                      <div><br>
                      </div>
                      <div><br>
                      </div>
                      <div><br>
                      </div>
                      <div>Thanks,</div>
                      <div>Christian</div>
                      <div><br>
                      </div>
                      <div><br>
                      </div>
                      <div><br>
                      </div>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                  </div>
                </div>
                <span class="">
                  <pre>_______________________________________________
LLVM Developers mailing list
<a moz-do-not-send="true" href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a moz-do-not-send="true" href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a>
<a moz-do-not-send="true" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a>
</pre>
                </span></blockquote>
              <span class="HOEnZb"> <br>
                <br>
                <pre cols="72">-- 
John Criswell
Assistant Professor
Department of Computer Science, University of Rochester
<a moz-do-not-send="true" href="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.cs.rochester.edu_u_criswell&d=AwMDaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=NjnhOfYCr4fvJwhI1odEYxPD5n0mP0XDb0H_yMTxG64&s=sD2YpHhU2iBpESqmOiUCAwSH4B9Mqbgn0XTTsh0iG4o&e=" target="_blank">http://www.cs.rochester.edu/u/criswell</a></pre>
              </span></div>
          </blockquote>
        </div>
        <br>
      </div>
    </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="https://urldefense.proofpoint.com/v2/url?u=http-3A__www.cs.rochester.edu_u_criswell&d=AwMDaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=Mfk2qtn1LTDThVkh6-oGglNfMADXfJdty4_bhmuhMHA&m=NjnhOfYCr4fvJwhI1odEYxPD5n0mP0XDb0H_yMTxG64&s=sD2YpHhU2iBpESqmOiUCAwSH4B9Mqbgn0XTTsh0iG4o&e=">http://www.cs.rochester.edu/u/criswell</a></pre>
  </body>
</html>