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