天天看点

《深入分析GCC 》——1.3 GCC代码分析

本节书摘来自华章出版社《深入分析gcc 》一书中的第1章,第1.3节,作者 王亚刚 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

gcc作为目前gnu项目中应用最广泛的工具软件之一,是工程师设计编译系统最典型、最成功的范例,是高校学生学习编译系统最生动、最权威的设计实例,同时也是程序员进行高质量代码设计的有益参考。本书以gcc 4.4.0的源代码为例,对gcc的设计和实现进行分析和解读,主要涉及以下内容:

本书将紧密围绕编译系统中的中间表示(ir,intermediate representation)这一核心概念,重点介绍gcc中的三种中间表示:抽象语法树(ast,abstract syntax tree)、gimple和寄存器传输语言(rtl,register transfer language),对其基本概念、存储结构及其生成过程等进行深入分析。由于gcc基于gimple和rtl的优化处理数量非常多,每种优化处理都涉及一个比较独立的优化问题,很难在本书中一一详述,因此,本书只简单地介绍了gcc中基于gimple及rtl的优化处理的基本组织方式,并对其中一些非常典型的优化处理进行了简介。最后,本书也给出了将gcc成功移植到西安邮电大学自主研发的阵列处理器上的一个实例。

限于篇幅,书中的大部分代码只给出了简化版本,读者在分析时需要结合源代码仔细研读。

继续阅读