[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