[llvm-dev] LLVM Alias Analysis (Load and store from same address is not showed up in same set)

Mustakimur Khandaker via llvm-dev llvm-dev at lists.llvm.org
Mon Apr 16 11:13:21 PDT 2018


Okay, I have tried the following:

 bin/opt -mem2reg -basicaa -cfl-anders-aa -print-alias-sets bin/test/test.bc

But, the result is same as last time. Do you mean something like this to try? Can you suggest what else could be an important factor for this issue?


Best Regards
Mustakimur Rahman Khandaker
Graduate Student and Teaching Assistant
Department of Computer Science
Florida State University
________________________________
From: Friedman, Eli <efriedma at codeaurora.org>
Sent: Monday, April 16, 2018 1:51:14 PM
To: Mustakimur Khandaker; llvm-dev at lists.llvm.org
Subject: Re: [llvm-dev] LLVM Alias Analysis (Load and store from same address is not showed up in same set)

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/3b149eef/attachment.html>


More information about the llvm-dev mailing list