我已经开始使用LLVM,我很想知道是否有一种编程方式从LLVM / clang中提取控制流图和/或基本块,以便对它们进行一些分析。有没有办法挂钩工具链并提取这些信息而不是直接编译?如果没有,有哪些替代方案?
答案 0 :(得分:3)
LLVM支持插件传递。编写一个传递来以你想要的任何格式发出你想要的任何数据是直截了当的。
但是,LLVM已经拥有大量的分析和转换过程。在运行所需的分析过程后,您可以使用现有的LLVM框架来提取所需的数据。
查看docs,code,然后在LLVMdev list上提出更具体的问题,以获得最佳答案。
答案 1 :(得分:1)
CFG(控制流程图)纯粹是CLang的一部分。
CFG支持访问者(请参阅CFG.h),但如果有可用的代码示例,您可能想询问CLang开发列表。