gcc GIMPLE 修改工具?
我需要添加 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据您的具体需要,您也许可以使用 GCC 插件 来完成此操作。
Depends on what you exactly need, you might be able to do this using GCC Plugins.
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.