有没有人见过关于汇编指令如何在GCC中诞生和转换的描述(文章,教程)?在扩展过程中如何(它的IR前身,正确)出现,经过rtl传递,变得越来越具体,等等。
非常感谢链接!
答案 0 :(得分:1)
首先,大多数GCC优化发生在GIMPLE中间表示的中端(即优化传递将GIMPLE转换为GIMPLE)。稍后,在后端层(在RTL级别)生成汇编程序指令。
事实上,你在GCC内部表示(主要是GIMPLE)方面比在汇编指令生命周期(几乎没有意义)方面更好地思考。
您可以使用-fdump-tree-all
进行编译(以及一些优化标记,例如-O1
),您可以使用MELT自定义GCC(注意:我是MELT的主要作者)。< / p>
印度人GCC resource center包含许多与GCC相关的资源。
我的GCC MELT documentation页面包含许多链接,slides描述了GCC内部。另请参阅this答案。
PS。我不再在GCC MELT工作(自2017年起)。这是一个不活跃的项目(与旧版GCC相关)。