c - 使用 gcc 的中间 GIMPLE 格式

标签 c gcc compiler-construction backend gimple

根据 this article gcc 在生成代码之前使用多种中间格式。我读到 GIMPLE 格式使用三个地址代码,这似乎是最容易使用的中间语言。但我需要更多细节,因为我需要构建一个工具,该工具可以获取中间代码并在生成最终代码之前向其中插入一些代码。

为此,我首先需要知道如何生成 GIMPLE 格式代码并将其保存在文件中。所以我正在寻找一些文件和例子。另外,如果有人处理过这样的事情,我能知道这个任务的复杂性,即在中间代码中插入一些代码吗?

最佳答案

您可能会发现编写 plugin 更容易对于 GCC,这将允许您 Hook GIMPLE 生成并在 GCC 内部更改它,这应该减少保存、编辑然后尝试从 GIMPLE 形式编译的停机时间。 MELT就是这样一个插件(虽然它提供的方式不仅仅是改变较低级别的表示)。还有一个不错的 PDF here在 GIMPLE 修改插件上。

否则,你可以看看here有关 GCC 的 GIMPLE 工作原理的信息。 在转储 GIMPLE 方面:

You can request to dump a C-like representation of the GIMPLE form with the flag -fdump-tree-gimple.

关于c - 使用 gcc 的中间 GIMPLE 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9099391/

相关文章:

c - 在c socket程序中定义结构的疑问

c - 0..9 约束在 GCC 内联汇编中有什么作用?

gcc - 通过 makefile 传递 gcc 标志

c - 我不知道为什么我会收到这些错误

c - 一次性从磁盘读取一组离散的页面

gcc - 如何在 64 位 RHEL 上编译 32 位应用程序?

actionscript - Flash Builder 条件编译变量

Delphi 错误 E2283 本地常量太多

c++ - 使用 VC++ 编译 SQLite 时如何处理警告?

无法在C中显示双向链表