<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Oct 22, 2013 at 9:55 AM, Hal Finkel <span dir="ltr"><<a href="mailto:hfinkel@anl.gov" target="_blank" class="cremed">hfinkel@anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">----- Original Message -----<br>
> Hi Evan,<br>
><br>
> We did an experiment using the LLVM test suite: we compare the<br>
> overhead of using our analysis to the LLVM default, both with -O2<br>
> option.<br>
<br>
</div>It might also be interesting to try with -O3; I don't know if we have any significant vectorizable loops in the test suite with a large number of arrays, but if we do, this kind of analysis should help.<br></blockquote>
<div><br></div><div>We perform loop vectorization at -O2 now?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im"><br>
><br>
> The overall overhead of compiling the whole test suite using our<br>
> analysis is 36.5%.<br>
<br>
</div>Maybe a good candidate for -fexpensive-optimizations? (or -O4?)<br></blockquote><div><br></div><div>It would also be helpful to know what the execution performance impact is to provide context.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im"><br>
> The biggest overhead is  observed in<br>
> "SingleSource/Benchmarks/Misc/flops-5", where we are 5 times slower:<br>
> 0.07s (with our analysis) compared to 0.0133s(default).<br>
> This may not be accurate as the compilation time in both cases are<br>
> quite small.<br>
<br>
</div>In my experience, compile-time measurements from a normal test-suite configuration less than 0.1s are too noisy to use.<br>
<div class="im"><br>
><br>
> Remind that the compilation time is reported by running our analysis<br>
> over individual files, the compilation time overhead will be larger<br>
> if<br>
> we link all individual compilation units together and run the<br>
> analysis over the whole application.<br>
<br>
</div>Yes, LTO tests would be interesting too.<br>
<br>
Thanks again,<br>
Hal<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> Regards,<br>
> Lian<br>
><br>
> On Sat, Oct 19, 2013 at 7:56 AM, Evan Cheng <<a href="mailto:evan.cheng@apple.com" class="cremed">evan.cheng@apple.com</a>><br>
> wrote:<br>
> ><br>
> > On Oct 17, 2013, at 10:51 PM, lian li <<a href="mailto:lianli@gmail.com" class="cremed">lianli@gmail.com</a>> wrote:<br>
> ><br>
> >> Thanks, Chris.<br>
> >><br>
> >> We are interested in contributing it to LLVM itself. Our manager<br>
> >> agrees to commit resources for maintenance needs if it is accepted<br>
> >> by<br>
> >> the community.<br>
> ><br>
> > This is great. Please make sure Oracle legal sign off on explicitly<br>
> > granting LLVM the use of the patents associated with the work.<br>
> ><br>
> > On the compile time front, can you do a comparison with the LLVM<br>
> > default and your new AA? You can just build the LLVM test suite.<br>
> ><br>
> > Thanks,<br>
> ><br>
> > Evan<br>
> ><br>
> >><br>
> >> Regards,<br>
> >> Lian<br>
> >><br>
> >> On Fri, Oct 18, 2013 at 3:43 PM, Chris Lattner<br>
> >> <<a href="mailto:clattner@apple.com" class="cremed">clattner@apple.com</a>> wrote:<br>
> >>><br>
> >>> On Oct 17, 2013, at 5:20 PM, lian li <<a href="mailto:lianli@gmail.com" class="cremed">lianli@gmail.com</a>> wrote:<br>
> >>><br>
> >>> Hi All,<br>
> >>><br>
> >>> This is Lian Li  from Oracle Labs in Brisbane Australia.<br>
> >>><br>
> >>> We have developed a precise and highly efficient pointer analysis<br>
> >>> framework on top of LLVM,  The approach is flow, context, and<br>
> >>> field<br>
> >>> sensitive, details are described in the two papers below:<br>
> >>><br>
> >>> "Boosting the performance of flow-sensitive points-to analysis<br>
> >>> using<br>
> >>> value flow" (in ESEC-FSE 2011), and<br>
> >>> "Precise and scalable context-sensitive pointer analysis via<br>
> >>> value<br>
> >>> flow graph" (in ISMM 2013).<br>
> >>><br>
> >>> The analysis was initially developed for the purpose of bug<br>
> >>> checking,<br>
> >>> and is now extended to support compiler optimizations. We have<br>
> >>> tested<br>
> >>> it with existing compiler optimizations in LLVM, and have seen<br>
> >>> promising results.<br>
> >>><br>
> >>> We are now considering to make this analysis available to the<br>
> >>> LLVM<br>
> >>> community, and contribute resources for future maintenance needs,<br>
> >>> provided that there is enough interest. We think that a new<br>
> >>> precise<br>
> >>> pointer analysis in LLVM can enable more new optimization and<br>
> >>> analysis<br>
> >>> techniques to be developed in LLVM.<br>
> >>><br>
> >>> Any people interested in seeing a new precise pointer analysis in<br>
> >>> LLVM?<br>
> >>><br>
> >>><br>
> >>> This sounds very interesting.  Even if it isn't fast enough to be<br>
> >>> used with<br>
> >>> (for example) clang -O2 or -O3, having such a precise analysis<br>
> >>> would be a<br>
> >>> great baseline for doing other alias analysis work.<br>
> >>><br>
> >>> Are you interested in contributing this to LLVM itself, or just<br>
> >>> asking if<br>
> >>> people would be interested to see the code in some other form?<br>
> >>><br>
> >>> -Chris<br>
> >><br>
> >><br>
> >><br>
> >> --<br>
> >> // Copyright @ 2011 Authorized by ** LIAN LI **<br>
> >> _______________________________________________<br>
> >> LLVM Developers mailing list<br>
> >> <a href="mailto:LLVMdev@cs.uiuc.edu" class="cremed">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank" class="cremed">http://llvm.cs.uiuc.edu</a><br>
> >> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank" class="cremed">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
> ><br>
><br>
><br>
><br>
> --<br>
> // Copyright @ 2011 Authorized by ** LIAN LI **<br>
> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:LLVMdev@cs.uiuc.edu" class="cremed">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank" class="cremed">http://llvm.cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank" class="cremed">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
><br>
<br>
</div></div><div class="im HOEnZb">--<br>
Hal Finkel<br>
Assistant Computational Scientist<br>
Leadership Computing Facility<br>
Argonne National Laboratory<br>
</div><div class="HOEnZb"><div class="h5">_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" class="cremed">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank" class="cremed">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank" class="cremed">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</div></div></blockquote></div><br></div></div>