- 2
- 0
- 约3.34千字
- 约 23页
- 2017-09-01 发布于重庆
- 举报
《《编译程序设计原理》》教案_28823.ppt
第八章 代码优化与代码生成 代码优化的任务 通过等价的程序变换,获得执行速度快、占用空间少的程序 代码生成的任务 针对目标语言的特殊性,生成高性能的目标代码(机器相关) 不同阶段的优化 算法优化 有效的数据结构和算法(领域问题) 编译优化 中间代码优化:机器无关 (如:常数计算、公共代码段) 目标代码优化:机器相关 (如:特殊指令、特殊结构) 中间代码优化 局部优化 基本块内部(不包括各种转移控制) 全局优化 循环优化、控制流分析与化简、数据流分析 8.1 基本块和流图 基本块: 控制流从第一语句进入,从最后一条语句离开,语句序列中途没有停止或分枝 流图: 以基本块为结点,按控制流设置有向边 基本块的划分: 三地址语句序列=基本块表 1) 定义入口语句: 代码序列的第一语句 转移语句的目标语句 转移语句的下一条语句 2) 基本块: 一入口语句到下一入口语句之前 一入口语句到转移语句或停语句之间 控制流图的构造 以基本块为结点,以控制流为有向边 流图 G={N,E,n0 } N:基本块集 n0 :含首语句的基本块 E:有向边集合 A ? B A 的出口为转移语句,转向 B 的入口 B 紧跟 A 之后,且 A 的出口不是 goto 或 return 例 8-1:基本块划分和流图 i = m - 1; j = n; v = a[ n ]; while( 1 ) { w
原创力文档

文档评论(0)