GCC:汇编指令生命周期

GCC: assembly instruction lifecycle

有没有人见过关于汇编指令如何在 GCC 中诞生和转换的描述(文章、教程)?它(它的 IR 前身,是正确的)如何在扩展过程中出现,通过 rtl passes,变得越来越特定于目标等。

非常感谢链接!

首先,大多数 GCC 优化发生在它的中间端,在 GIMPLE 中间表示上(即优化过程将 GIMPLE 转换为 GIMPLE)。只有稍后,在后端层(在 RTL 级别)才会生成汇编程序指令。

事实上,与汇编指令生命周期(几乎没有意义)相比,您最好从 GCC 内部表示(主要是 GIMPLE)的角度来思考。

您可以使用 -fdump-tree-all(以及一些优化标志,例如 -O1)进行编译,您可以使用 MELT 自定义 GCC(注意:我是 MELT 的主要作者) .

印度GCC resource center包含大量与GCC相关的资源。

我的 GCC MELT documentation page contains many links and slides describing GCC internals. See also this 答案。

PS。我不再从事 GCC MELT 的工作(自 2017 年以来)。这是一个不活跃的项目(绑定到旧版本的 GCC)。