0


作为研究思路的一部分,我需要完成以下任务:
1. 解析手头的 C 文件以获取 llvm-IR。
2. 对 IR 进行分析。可能添加和删除一些指令或 BB
3. 发出 x86 可执行文件或 C(需要稍后决定)

我认为这对于任何一个编写 C 分析的人来说都是很常见的任务,我想用 C/C++ 完成所有这些任务(因为我们的大部分研究代码都是用 C/C++ 编写的)。我用谷歌搜索了很多,虽然任务 2 和 3 有很多文档可用,但任务 1 可用的文档较少,任何关于此的想法都会非常有帮助。

我想将这些任务作为管道挂钩,也欢迎对此提出任何建议。

-谢谢

4

1 回答 1

1

(1) 可以通过使用 Clang 发出 LLVM IR来完成。

(2) 可以通过编写您自己的 LLVM pass来完成,然后通过LLVM 的 opt tool调用它(使用您感兴趣的任何其他通道)。

(3) (到 x86) 可以通过LLVM 的 llc 工具来完成。

所有这些也可以作为 API 访问,而不仅仅是命令行工具,从而可以合并到您的管道中。

于 2013-06-23T08:28:11.420 回答