使用llvm-clang编写完整分析

时间:2013-06-22 22:45:36

标签: llvm llvm-clang llvm-c++-api


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

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

我想把这些任务挂钩作为管道,对此也有任何建议。

-Thanks

1 个答案:

答案 0 :(得分:1)

(1)可以由using Clang to emit LLVM IR完成。

(2)可以通过writing your own LLVM pass完成,然后通过LLVM's opt tool调用它(以及您感兴趣的任何其他通行证)。

(3)(至x86)可以由LLVM's llc tool完成。

所有这些都可以作为API访问,不仅可以使用命令行工具,还可以将其合并到管道中。