我正在尝试对所有文件进行一些检测。我想完成的任务之一是:
当我遇到AllocaInstr时:
%1 = alloca i32
我想在它之后测量一个函数call __save_addr()
,如下所示:
%1 = alloca i32
call __save_addr(i32* %1)
有办法做到这一点吗?
-
遍历函数中的所有指令。
-
检查是否是
AllocaInst
。如果是 -
创建一个新的
CallInst
调用你的函数*,并传递AllocaInst
实例作为第一个参数
*如果你的函数已经在模块中,你可以通过Module::getFunction
找到它;如果它在另一个模块中,你必须为它创建一个声明。