我需要添加对类似 OpenMP(指令)语言的 gcc 支持。我知道可以转储 GIMPLE 代码,然后“取消转储”它并继续编译。我想修改转储的 DIMPLE 以添加对我的动态库的调用、修改变量等。有什么方便的工具可以做到这一点吗?
编辑: 也许 LLVM 是我需要的。目前我对如何将 GIMPLE 转换为 LLVM IR 很感兴趣。另外,有没有办法获取信息哪一行源代码对应于IR的具体操作符?
我需要添加对类似 OpenMP(指令)语言的 gcc 支持。我知道可以转储 GIMPLE 代码,然后“取消转储”它并继续编译。我想修改转储的 DIMPLE 以添加对我的动态库的调用、修改变量等。有什么方便的工具可以做到这一点吗?
编辑: 也许 LLVM 是我需要的。目前我对如何将 GIMPLE 转换为 LLVM IR 很感兴趣。另外,有没有办法获取信息哪一行源代码对应于IR的具体操作符?
取决于您到底需要什么,您可以使用GCC Plugins来做到这一点。
GIMPLE => LLVM IR 转换器称为“llvm-gcc”(如果您想要 GCC 插件,则称为 DragonEgg)。在 LLVM IR 中存储源语言行和某些内容之间的映射的标准方法是通过调试信息的发射。