[LLVMdev] Using basicaa alias analysis pass

Ahmed Bougacha ahmed.bougacha at gmail.com
Wed Jan 21 08:43:51 PST 2015


Hi Sheng-Hsiu,

On Wed, Jan 21, 2015 at 8:09 AM, Sheng-Hsiu Lin <shl311 at lehigh.edu> wrote:
> Hi
>
> I am completely new to LLVM, and I am trying to explore the alias analysis
> part of it.  It seems to me that -basicaa is the most simple alias analysis
> pass in LLVM.  So I would like to try and make it work (to see some alias
> analysis results of some sample bit code).
>
> What I have done is that I
>
> ---make lib/Analysis/BasicAliasAnalysis.cpp into a .so file
> ---write a sample c program, hello.c, with the following code
>
> #include<stdio.h>
>
> int main()
> {
>     int a;
>     int *p;
>     p = &a;
>     a = 10;
>     printf("Hello World");
>     return 0;
> }
>
> ---compile the c program into bit code by doing
> clang -c -emit-llvm hello.c -o hello.bc
>
> ---run the bit code through basicaa pass
> opt -load lib/AliasAnalysis.so -basicaa < hello.bc > result.bc
>
> ---display the resulted bit code
> llvm-dis result.bc -o -
>
> However, the resulted bit code result.bc is exactly the same as the original
> bit code hello.bc.  That is no alias analysis information is printed on the
> screen or recorded in the resulting result.bc file.
>
> Could someone explain what I should do to get some results from basicaa
> alias analysis pass?

Alias analyses (and for that matter, other kinds of analyses) don't do
any transformation on their own, but merely provide the analysis
result for other transformations to use.  See the related
documentation page (http://llvm.org/docs/AliasAnalysis.html) for more
information.

There are several tools to help evaluate alias analysis results, (in
part) documented on that same page; a good starting point would be
-aa-eval, and the associated options (-print-no-aliases, etc.. See
lib/Analysis/AliasAnalysisEvaluator.cpp).

-Ahmed

> Thank you very much.  Your help is much appreciated!
>
> Sheng-Hsiu
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>



More information about the llvm-dev mailing list