gcc GIMPLE 修改工具?

发布于 2024-10-19 11:24:52 字数 229 浏览 1 评论 0原文

我需要添加 gcc 对类似 OpenMP(指令)语言的支持。我知道可以转储 GIMPLE 代码,然后“取消转储”它并继续编译。我想修改转储的 DIMPLE 以添加我的动态库的调用、修改变量等。有什么方便的工具可以做到这一点吗?

编辑:也许 LLVM 就是我所需要的。目前我感兴趣的是如何将 GIMPLE 转换为 LLVM IR。另外,有没有办法获取源代码的哪一行对应于IR的具体运算符的信息?

I need to add to gcc support of an OpenMP-like (directive) language. I know it is possible to dump GIMPLE code and then "undump" it and continue compilation. I want to modify the dumped DIMPLE to add calls of my dynamic library, modify variables, and so on. Is there any handy tool to do this?

EDIT: Perhaps LLVM is what I need. Currently I am interested in how to transform GIMPLE to LLVM IR. Also, is there a way to get information what line of source code corresponds to concrete operator of IR?

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

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

发布评论

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

评论(2

鲜肉鲜肉永远不皱 2024-10-26 11:24:52

根据您的具体需要,您也许可以使用 GCC 插件 来完成此操作。

Depends on what you exactly need, you might be able to do this using GCC Plugins.

一笔一画续写前缘 2024-10-26 11:24:52

GIMPLE=> LLVM IR 转换器称为“llvm-gcc”(如果您需要 GCC 插件,则称为 DragonEgg)。
存储源语言行与 LLVM IR 中某些内容之间的映射的标准方法是通过发出调试信息。

GIMPLE => LLVM IR translator is called "llvm-gcc" (or DragonEgg if you want a GCC plugin).
The standard way of storing the map between lines of source language and something in LLVM IR is via emission of the debug information.

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