[llvm-dev] Function call replacement

David Blaikie via llvm-dev llvm-dev at lists.llvm.org
Wed Mar 3 12:03:13 PST 2021


On Wed, Mar 3, 2021 at 11:55 AM zxhuan via llvm-dev <llvm-dev at lists.llvm.org>
wrote:

> Hi all,
>
> I am trying to replace calls to a function, say foo() with calls to
> my_foo(). In the IR file, there is no call to foo(). However, foo() will be
> called during execution.
>

Can't say I'm following here ^ there is no call to foo() but it is called
during execution? Is it called indirectly (eg: void (*x)() = foo; x(); )?
is the call in another module/not this IR file?


> I can't use the conventional way to do it (i.e. locate the call
> instruction, create a call site and then create a call to my_foo(), then
> replace all uses with the return value of my_foo()), because you can't
> locate the call instruction. So I tried to swap the name of foo() and
> my_foo(). However, this only results in the original function with the new
> name being called. I know I must have missed some steps, resulting in the
> reference to the original function still existing after the renaming. The
> question is, what is the missing step? Thank you so much for reading my
> description. I hope I make my question clear.
>
> Best,
> Jason
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210303/a31089ca/attachment.html>


More information about the llvm-dev mailing list