[llvm-dev] LLVM Alias Analysis (Load and store from same address is not showed up in same set)
Friedman, Eli via llvm-dev
llvm-dev at lists.llvm.org
Mon Apr 16 10:51:14 PDT 2018
On 4/15/2018 11:44 AM, Mustakimur Khandaker via llvm-dev wrote:
> Hi
> I have this simple c code for which I would like to use for alias
> analysis.
>
> #include <stdio.h>
> #include <stdlib.h>
>
> static int (*fp) (void);
> void ind_call (int (*compr)(void)){
> fp = compr;
> fp();
> }
> int hello(void){
> return printf("hello world\n");
> }
> int main(){
> ind_call(hello);
> return 0;
> }
>
>
> So, I do the following:
>
> bin/opt -basicaa -cfl-anders-aa -print-alias-sets bin/test/test.bc
>
>
> I get the following result:
>
> Alias sets for function 'ind_call':
> Alias Set Tracker: 2 alias sets for 2 pointer values.
> AliasSet[0x91a5820, 1] must alias, Mod/Ref Pointers: (i32 ()**
> %compr.addr, 8)
> AliasSet[0x91a58c0, 2] may alias, Mod/Ref Pointers: (i32 ()**
> @fp, 8)
> 1 Unknown instructions: i32 %call
>
LLVM's alias analysis is not very smart; it depends on other
optimization passes to produce reasonable results. You should at least
run mem2reg before trying to do any alias analysis queries.
-Eli
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180416/f243179c/attachment.html>
More information about the llvm-dev
mailing list