GCC可以编译GIMPLE吗?

时间:2014-02-09 14:51:04

标签: gcc gimple

GIMPLE是GCC系统中的内部表示之一。可以通过-fdump- * compiler参数转储GIMPLE或任何其他内部表示。但有没有办法编译转储的GIMPLE或任何其他表示?似乎GCC没有GIMPLE前端。我想做的是转储,分析,修改然后重新编译转储的GIMPLE以执行各种代码工具。

PS我知道GCC插件,我知道LLVM / Clang,所以请尽量回答确切的问题而不建议替代解决方案。谢谢!

2 个答案:

答案 0 :(得分:7)

有一个项目:GIMPLE FE,几年前开始,但它从未达到可用状态,基本上已经死了。顺便说一下,从-fdump-获得的转储是不完整的。他们很高兴让你知道发生了什么,但他们没有足够的信息来重建内部结构。

这项工作在GSoC'16期间重新启动,主要目标是启用单元测试。 Patches可以处理一些简单的案例。计划是将这个实验性支持整合到gcc-7或gcc-8中,并逐步改进它,因为它在测试套件中越来越多地被使用。同样,RTL front-end正在进行中,对于gcc的其他内部表示。

答案 1 :(得分:0)

我们面临着同样的问题。建议不要编写“转储/重新加载” GIMPLE文件并在字符串级别对其进行操作,而是建议编写一个gcc插件并在那里处理GIMPLE数据结构。