[LLVMdev] Comparison of Alias Analysis in LLVM

Chris Lattner
Tue, 03 Jan 2012 21:55:04 -0000

On Jan 3, 2012, at 1:53 PM, Jianzhou Zhao wrote:
> I see. I asked the question because LLVM provides several alias
> analysis, and I was wondering how to decide which one should be used
> for compiling most programs.
>
> I think the basicaa is the default one, but by looking into its code,
> it is not inter-procedural or context-sensitive (I am not 100% sure),
> so does not provide interesting mod/ref information. Then, GVN(PRE)
> and LICM may not have a lot of opportunities for optimizing calls. So,
> I looked into the thesis for understanding how those inter-procedural
> aa and other aa contribute. I guess basicaa has a better speed-up per
> compiling-cost ratio for most common programs than others. Is this
> correct?

We do also use globalsmodref, and have a pass for inferring and propagating the
readnone/readonly markers.  We also now have Type Based Alias Analysis for C
languages.

No one has really been pushing forward aliasing much lately.

-Chris