无论如何,我可以确定被调用函数是否是用户定义?例如:
void foo()
{
printf("hello world again");
}
int main()
{
printf("hello world\n");
foo();
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,foo()是用户定义,而printf()是库函数.
我目前使用的方法是迭代所有模块并检查其大小是否大于0.即:
for(Module::iterator F = M.begin(); F != M.end(); ++F)
{
Function &Func = *F;
if(F->size()>0)
errs() << "User Define";
}
Run Code Online (Sandbox Code Playgroud)
但我不确定它的准确性?
我想使用lli 3.4计算在任何程序中动态执行的LLVM指令的数量.
我检查了这个链接,但它没有提供任何与指令计数相关的信息.