作为我的研究思路的一部分,我有以下需要完成的任务:
1.解析手边的C文件以获得llvm-IR
2.对IR进行分析。可能添加和删除一些说明或BB
3.发出x86可执行文件或C(需要稍后决定)
我认为对于任何一个C语言分析来说,这是一个非常常见的任务,我想用C / C ++完成所有这些任务(因为我们的大多数研究代码都是用C / C ++编写的)。我搜索了很多,虽然有很多文档可以在任务2和3上找到,但是在任务1上可用的很少,任何想法都会非常有帮助。
我想把这些任务挂钩作为管道,对此也有任何建议。
-Thanks
答案 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访问,不仅可以使用命令行工具,还可以将其合并到管道中。