编译原理 优化
编译原理 优化
源程序 词法分析器 单词符号 出 表格管理 语法分析器 优化可在编译的 语法单位错备段进 优化是在目标代 中间代码生成器 码生成前,对语 四元式处 法分析得到的中 间代码进行的 优化段 与具体机器无关。 另一类重要的优 四元式 化是在生成目标 理代时进行的 与具体机器有关。 目标代码生成器 目标代码
词法分析器 语法分析器 中间代码生成器 优化段 源程序 单词符号 语法单位 四元式 表格管理 出错处理 目标代码生成器 四元式 目标代码 优化可在编译的 各个阶段进行。 但其中最主要的 优化是在目标代 码生成前,对语 法分析得到的中 间代码进行的, 与具体机器无关。 另一类重要的优 化是在生成目标 代码时进行的, 与具体机器有关
第十章优化 优化:对程序进行各种等价变换,使得从 变换后的程序出发,能生成更有效的目标 代码。 口等价:指不改变程序的运行结果。 口有效:指目标代码运行时间短,占用的存储空 间小。 编译前端 代码优化器 编译后端 控制流分析 数据流分析 代码变换 代码优化器的地位和结构
第十章 优化 ◼ 优化:对程序进行各种等价变换,使得从 变换后的程序出发,能生成更有效的目标 代码。 等价:指不改变程序的运行结果。 有效:指目标代码运行时间短,占用的存储空 间小。 编译前端 代码优化器 编译后端 控制流分析 数据流分析 代码变换 代码优化器的地位和结构
10.1概述 优化的目的是为了产生更高效的代码。由 优化编译程序提供的对代码的各种变换必 须遵循一定的原则: 口等价原则:经过优化后不应改变程序运行的 结果; 口有效原则:使优化后所产生的目标代码运行 时间较短,占用的存储空间较小; □合算原则:应尽可能以较低的代价取得较好 的优化效果
10.1 概述 ◼ 优化的目的是为了产生更高效的代码。由 优化编译程序提供的对代码的各种变换必 须遵循一定的原则: 等价原则:经过优化后不应改变程序运行的 结果; 有效原则:使优化后所产生的目标代码运行 时间较短,占用的存储空间较小; 合算原则:应尽可能以较低的代价取得较好 的优化效果
10.1概述 优化的三个不同级别: 局部优化 基于块的局部优化比较容易实现。 口循环优化 在程序的执行过程中,相当多的一部分时间花在 循环上,因此,循环优化比较重要 □全局优化 全局优化涉及整个程序的控制流和数据流分析, 因此实现代价较高
10.1 概述 ◼ 优化的三个不同级别: 局部优化 ◼ 基于块的局部优化比较容易实现。 循环优化 ◼ 在程序的执行过程中,相当多的一部分时间花在 循环上,因此,循环优化比较重要。 全局优化 ◼ 全局优化涉及整个程序的控制流和数据流分析, 因此实现代价较高