<div dir="ltr"><div>><span style="font-size:12.8px"> I am using the LLVM 3.8 since it include some of the newer version of alias analysis (cfl-aa) that might be worthwhile to compare against our proposed method</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Just wanted to note that CFLAA has had a bug fixed since the 3.8 release, and still isn't enabled by default because there are probably more bugs lurking in it. </span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">> </span><span style="font-size:12.8px">but after I ran it using command line argument such as ./opt -[some]-aa -aa-eval … it always give me a consistent answer despite the fact that I am running it with different analysis</span><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Have you tried the `-disable-basicaa` flag? Sometimes we'll use BasicAA by default, so you might be getting answers from that. :) (It seems that was added as a part of the new pass manager transition; if it's not currently mentioned in our docs, I'll see if I can add it)</span></div><div><br></div><div>> <span style="font-size:12.8px">Also, is there a way to objectively quantify (say a baseline) the result of the aa-eval since it only output the value of precision from the analysis? how do I verify that the alias is indeed alias in LLVM?</span></div><div><br></div><div>I'm parsing your question as "how do we determine if two things alias each other?" The answer to that is "alias analysis".</div><div><br></div><div><span style="font-size:12.8px">> 3. what is alias analysis mainly used for?</span></div><div><span style="font-size:12.8px"><br></span></div><div>Looking at BasicAA's API:</div><div>- Getting whether some statement A may be able to modify/reference some memory location B</div><div>- Getting whether two memory locations {may,must,can't,partially} alias each other</div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">> 4. what type of benchmark can I run for the pointer analysis? I know there is a test-suite package but I also want to know if there are other options.</span><br></div><div><br></div><div>I don't think there's a well-defined way to do this. If you only care about execution time, `opt` gives you the -time-passes flag, so you can try running opt with a simple configuration (e.g. opt -basicaa -aa-eval file.ll). Depending on the size of your benchmarks and what you're trying to benchmark, you can also probably make an aa-bench pass that hammers the AA you're interested in. Note that some AA algorithms (specifically, I have CFLAA in mind) build up internal data structures ahead of time, so that queries take little more than a few map lookups. So, if you do end up making your own benchmarking pass, please keep that in mind.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 7, 2016 at 9:03 PM, Zihao Liu via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
> On Apr 7, 2016, at 11:47 PM, Zihao Liu <<a href="mailto:zihaol1@andrew.cmu.edu" target="_blank">zihaol1@andrew.cmu.edu</a>> wrote:<br>
><br>
> Hello all,<br>
><br>
> My name is Zihao Liu, currently a computer science graduate student working on a LLVM project related to pointer analysis. I am using the LLVM 3.8 since it include some of the newer version of alias analysis (cfl-aa) that might be worthwhile to compare against our proposed method. I have a couple of questions regarding the pointer analysis using LLVM3.8.<br>
><br>
> 1. is there a good way to evaluate the default alias analysis? following the documentation, it seems that I can use aa-eval, but after I ran it using command line argument such as ./opt -[some]-aa -aa-eval … it always give me a consistent answer despite the fact that I am running it with different analysis. Also, is there a way to objectively quantify (say a baseline) the result of the aa-eval since it only output the value of precision from the analysis? how do I verify that the alias is indeed alias in LLVM?<br>
> 2. how can I implement my own alias analysis in the current LLVM that can be invoked with ./opt -load ./MyOwnAA.so -myown-aa? I try to use the register analysis group but the API seems to changes from the documentation.<br>
> 3. do I really need to use alias analysis to implement point-to pointer analysis? what is alias analysis mainly used for?<br>
> 4. what type of benchmark can I run for the pointer analysis? I know there is a test-suite package but I also want to know if there are other options.<br>
><br>
> Thanks for your time.<br>
> Zihao<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div><br></div></div>