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.
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...@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
One example can be a constructor of a class, say class Foo, in C++. When you have a vector of Foo instances, the constructor will be called by the library function of vector.
There are many such functions, that you can't know they are actually executed until the runtime.Beside that, I have done some research today. This has to be done by modifying the class's vtable.
I have manually modified the IR file and it works. But I just can't find an API function of LLVM to modify the vtable of the class.