[llvm-dev] Function call replacement (original) (raw)

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 myfoo(). 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 myfoo(), then replace all uses with the return value of myfoo()), because you can't locate the call instruction. So I tried to swap the name of foo() and myfoo(). 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