在LLVM中查找外部函数

时间:2015-11-21 02:38:35

标签: compiler-construction llvm compiler-optimization llvm-ir llvm-c++-api

我尝试编写一个LLVM传递,它将直接或间接地找到调用外部函数(即未在当前编译单元中定义的函数)的函数

例如,当在C代码上运行时:

void a(string s) {print(s)}; int b(int x) {return 1} void c(void) {a("hello);b}

它应该标记a和c。

我需要一些方法来判断给定的调用inst是否对应于对外部函数的直接调用。我的第一种方法是从调用inst中提取函数对象,然后使用从GlobalValue类继承的isDeclaration()方法。这最终在每次函数调用时返回true,这显然是不可取的。

处理此问题的正确方法是什么?

0 个答案:

没有答案