[LLVMdev] Alias Analysis Problem in LICM

John Criswell criswell at illinois.edu
Thu Nov 3 14:30:08 PDT 2011


On 11/3/11 4:07 PM, Gan wrote:
> Hi,
>
> [snip]
>
> Since the "Anderson" alias analysis code is already moved out from
> LLVM, we can only count
> on BasicAA and TBAA for all alias analysis problems at this moment.
> But these two piece of code
> can only do very limited alias analysis and would become a big
> performance bottleneck to
> other optimization phases, e.g. instruction scheduling, LICM. Can
> anybody tell me:
>
> 1. How to solve the above alias analysis problem in an acceptable short time?
> 2. Is there any existing project that tries to enhance LLVM alias analysis?

The poolalloc project (directions for downloading it are on the SAFECode 
web page at http://sva.cs.illinois.edu/docs/Install.html) contains a 
points-to analysis called DSA.

DSA is a unification-based points-to analysis.  The interface to use it 
as an AliasAnalysis pass was removed since no one was using it and it 
was probably buggy.  There are currently two routes for re-adding it.  
One is to review and fix up a patch that was submitted earlier this 
year.  The other approach is to rewrite the code from scratch.  The 
former approach may be easier, but I don't know how well the code would 
work in practice.  The latter approach could be easily done using some 
code that we wrote (and could probably distribute if someone wants to 
tackle this problem).

Bug 11130 (http://llvm.org/bugs/show_bug.cgi?id=11130) is tracking 
interest in this feature so that we can give it an appropriate 
priority.  Until one of us gets time to implement it or we get a 
contributor that provides a clean patch that works with LLVM 3.0, 
though, it's like to remain unfixed.

You can, of course, always examine the points-to graph directly.

Another alternative is to look at the analyses by Ben Hardekopf 
(http://www.cs.ucsb.edu/~benh/downloads.html).  I'm not sure if his code 
offers an AliasAnalysis interface, though.

-- John T.

>
> Thank you!
>




More information about the llvm-dev mailing list