标签: gimple

玩gcc的中间格式

根据这篇文章, gcc在生成代码之前使用了几种中间格式.我读到GIMPLE格式使用三个地址代码,这似乎是最容易使用的中间语言.但我需要一些更详细,因为我需要建立一个工具,可以把中间代码,并生成最终的代码之前插入一些代码到它.

为此,我首先需要知道如何生成GIMPLE格式代码并将其保存在文件中.所以我正在寻找一些文件和例子.此外,如果有人使用过这些东西,我是否可以知道这项任务的复杂性,即将一些代码插入到中间代码中?

c compiler-construction gcc backend gimple

9
推荐指数
2
解决办法
8459
查看次数

GCC可以编译GIMPLE吗?

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

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

gcc gimple

9
推荐指数
1
解决办法
945
查看次数

为什么小于表达式转换为小于或等于gcc中的表达式

我正在进行代码优化并通过gcc内部.我在我的程序中写了一个简单的表达式,然后检查了该表达式的gimple表示,我被卡住了为什么gcc已经这样做了.说我有一个表达式:

if(i < 9)
Run Code Online (Sandbox Code Playgroud)

然后在gimple表示中它将被转换为

if(i <= 8)
Run Code Online (Sandbox Code Playgroud)

我不知道为什么gcc这样做.它是某种优化,如果是,那么任何人都可以告诉我它如何优化我们的程序?

c optimization gcc gimple

6
推荐指数
1
解决办法
220
查看次数

标签 统计

gcc ×3

gimple ×3

c ×2

backend ×1

compiler-construction ×1

optimization ×1