[llvm-dev] Change function call name in a CallInst only in certain functions

mayuyu.io via llvm-dev llvm-dev at lists.llvm.org
Fri Mar 23 17:19:03 PDT 2018


You are probably calling setName() on the called Function, which in-turned renamed the called Function instead of replacing the called function.
Depending on your use-case, if you are certain that you only need to modify CallInsts, then you could simply call CallInst::setCalledFunction , otherwise it’s probably wiser to use CallSite as a wrapper for both CallInst and InvokeInst. Do note, however, that no matter which solution you end up using, you’ll need to update the FunctionType as well
Zhang

> On 23 Mar 2018, at 23:07, Dávid Bolvanský via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> Hello,
>  
> In my module I have functions:
> 
> a
> b
> c
> f3 calls "a"
> f2 calls "a"
> f1 calls "b"
> 
> I would like to modify a CallInst in the f2. Now it calls "a", but I want changed it to "c".
> 
> When loop over the instructions of the  f2, I can get a CallInst to be modified, then I use "setName" to changed it to "c".
> 
> 
> Problem is, since references are updated, "a" is changed to "c" even in f1. 
> 
> Any solution?
> 
> Thanks
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev



More information about the llvm-dev mailing list