第十一章代码优化全解.ppt

第十一章代码优化全解

第11章 代码优化 学习目标: 掌握:基本块的划分、基本块的DAG优化 理解:什么是局部优化、循环优化、全局优化 了解:循环优化技术 11.1 优化技术简介 11.2 局部优化 11.3 循环优化简介 11.1 优化技术简介 什么是优化: 所谓优化是对代码进行等价变换,使得变换后的代码的效率更高(节省运行时间、存储空间或两者兼而有之) 优化可在编译的不同阶段进行,最主要的优化有 中间代码优化(不依赖具体计算机) 目标代码优化(依赖于具体计算机) 优化的分类: 根据优化涉及的程序范围,分为: 局部优化:在只有一个入口、一个出口的基 本块上进行优化 循环优化:对循环中的代码进行优化 全局优化:在整个程序范围内进行的优化 中间代码优化常用技术 1.? 删除多余运算(删除公共子表达式) 如果子表达式E在前面计算过,且之后E中的变量值都未改变,那么E的重复出现称为公共子表达式,可避免重复计算 2. 合并已知量与复写传播 如果运算量都是已知量,则在编译时就算出它的值,称为合并已知量 若有A:=B,称为把B值复写到A。如果其后有引用A的地方,且其间A、B的值都未改变,则可把对A的引用改为对B引用,称为复写传播。 3. 删除无用赋值 有些变量的赋值从未被引用,称为无用赋值,应删除。 无用赋值分三种情况: 变量被赋值,但在程序中从未被引用(在局部范围内难判定) ?变

文档评论(0)

1亿VIP精品文档

相关文档