从后端的 LLVM/clang 中提取基本块/CFG

发布于 2024-10-16 12:06:04 字数 115 浏览 7 评论 0 原文

我已经开始使用 LLVM,我很想知道是否有一种编程方法可以从 LLVM/clang 中提取控制流图和/或基本块,以便对它们进行一些分析。有没有办法挂钩工具链并提取这些信息,而不是直接编译?如果没有,还有哪些替代方案?

I've been beginning to work with LLVM and I'm interested to know if there is a programmatic way to extract the control flow graph and/or basic blocks from LLVM/clang in order to do some analysis on them. Is there a way to hook into the tool chain and pull out this information instead of doing a straight compilation? If not, what are the alternatives?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

別甾虛僞 2024-10-23 12:06:04

LLVM 支持插件通道。编写一个过程来以您想要的任何格式发出您想要的任何数据是很简单的。

然而,LLVM 已经拥有大量的分析和转换过程。在运行所需的分析过程后,您也许可以使用现有的 LLVM 框架来提取所需的数据。

查看文档代码,然后在 LLVMdev 列表以获得最佳答案。

LLVM supports plugin passes. It would be straight-forward to write a pass to emit whatever data you want in whatever format you want.

However, LLVM has a large suite of analysis and transform passes already. You may be able to use the existing LLVM framework to extract the data you want after running the analysis passes you want.

Take a look at the docs, the code, and then ask more specific questions on the LLVMdev list to get the best answers.

<逆流佳人身旁 2024-10-23 12:06:04

CFG(控制流图)纯粹是 CLang 的一部分。

CFG 支持访问者(请参阅 CFG.h),但您可能想在 CLang dev 上询问列出是否有可用的代码示例。

The CFG (Control Flow Graph) is purely part of CLang.

The CFG supports Visitors (see CFG.h) but you might want to ask on CLang dev list if there is a code sample available.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文