LLVM遍历IR并查找对@ llvm.dbg.declare的所有调用

时间:2018-06-08 15:52:07

标签: c++ clang llvm

我正在写一个LLVM传递,它会在openCL内核中提供已声明变量的数量。为此,我需要启用调试信息并访问@llvm.dbg.declare信息。

我遍历函数的所有指令,并使用isa<CallInst>模板来识别调用指令。

现在有两种情况,我可以有

call void @llvm.dbg.declare(metadata float addrspace(1)** %4, metadata !20, metadata !DIExpression()), !dbg !21

%6 = call i32 @get_global_id(i32 0), !dbg !25

如何检查CallInst是否有与之关联的元数据,即内部有@llvm.dbg.declare,然后如何提取变量声明的名称(我怀疑是通过{{} 1}}方法?

0 个答案:

没有答案