如何从llvm IR获取数据依赖信息?

问题描述 投票:0回答:1

例如下面的代码

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

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

%div
而第三条指令需要
%div
.

类似地,

%38
在第二条指令中计算,第三条指令需要它。

有没有什么工具或者llvm

opt
命令可以得到数据依赖的信息?

我试过

opt -enable-new-pm=0 -da -stats source_ir.ll
但什么也打印不出来。

c++ c compiler-construction llvm
1个回答
0
投票

也许您正在寻找的是 LLVM 的Data Dependency Graph。文档中还提到的“程序依赖关系图”似乎从未实现过——真可惜,它本可以提供更好的信息。在 this talk.

中首先提到了他们两个 AFAIK

检查这个 LLVM 测试 以获取使用示例。

© www.soinside.com 2019 - 2024. All rights reserved.