如何从llvm IR中获取数据依赖关系信息



例如,下面的代码

%div = sdiv i32 %add, %36
%38 = trunc i64 %indvars.iv.next18 to i32
%mul11 = mul nsw i32 %div, %38

第一条和第三条指令可能是数据依赖,因为第一条指令计算%div,第三条需要%div

类似地,%38在第二条指令计算,第三条指令需要它

是否有任何工具或llvmopt命令可以获得有关数据依赖性的信息?

我试过opt -enable-new-pm=0 -da -stats source_ir.ll,但什么都打印不出来。

也许您想要的是LLVM的数据依赖关系图。文档中提到的"程序依赖关系图"似乎从未实现过——这很遗憾,它本可以提供更好的信息。他们两人都是AFAIK在这次谈话中首次提到的。

有关用法示例,请检查此LLVM测试。

最新更新