[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