Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gcc框架修改工具?_C_Gcc_Compiler Construction_Llvm_Llvm Gcc - Fatal编程技术网

gcc框架修改工具?

gcc框架修改工具?,c,gcc,compiler-construction,llvm,llvm-gcc,C,Gcc,Compiler Construction,Llvm,Llvm Gcc,我需要向gcc添加类似OpenMP(指令)语言的支持。我知道可以转储GIMPLE代码,然后“卸载”它并继续编译。我想修改转储的酒窝,以添加对我的动态库的调用,修改变量,等等。有什么方便的工具来做这件事吗 编辑:也许我需要的是LLVM。目前我对如何将GIMPLE转换为LLVM IR感兴趣。另外,有没有一种方法可以获取信息,即哪行源代码对应于IR的具体运算符?取决于您的具体需要,您可以使用。GIMPLE=>LLVM IR转换器被称为“LLVM gcc”(如果您想要gcc插件,可以使用DragonEg

我需要向gcc添加类似OpenMP(指令)语言的支持。我知道可以转储GIMPLE代码,然后“卸载”它并继续编译。我想修改转储的酒窝,以添加对我的动态库的调用,修改变量,等等。有什么方便的工具来做这件事吗


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

取决于您的具体需要,您可以使用。

GIMPLE=>LLVM IR转换器被称为“LLVM gcc”(如果您想要gcc插件,可以使用DragonEgg)。
在源语言行和LLVM IR中的某些行之间存储映射的标准方法是通过发出调试信息。

谢谢Amir,但似乎只有MELT适合我的需要,我有理由不使用它:1。口齿不清对我不好。它是一个现有的GCC插件。但是,您可以考虑开发自己的GCC插件来满足您的需求。GLCC前端不是LLVM就是这样,也就是说GCC编译器以LLVM字节码格式生成代码。