5.1局部优化概要
第5章 代码优化 5.1 局部优化 5.2 循环优化 5.3 代码优化示例 代码优化的含义:对代码进行等价变换,使得变换后的代码具有更高的时间效率和空间效率,提高目标程序的质量。 优化可以在编译的不同阶段进行: 目标代码以前,即对语义分析后的中间代码优化,优点:不依赖于具体的计算机。 生成代码时优化,依赖于具体的计算机。 局部优化、循环优化和全局优化的概念 为了叙述方便,四元式?直观的三地址代码 5.1 局部优化 概念: 局部优化是指对代码的每一个线性部分所进行的优化,使得在这个线性部分只存在一个入口和一个出口,而这个线性部分我们称之为基本块。 5.1.1 基本块的划分方法 基本块(Basic Block):指程序中一顺序执行的语句序列,其中只有一个入口和一个出口,入口就是该序列的第一个语句,出口就是该序列的最后一个语句。 对一个基本块来说,执行时只能从其入口进入,从其出口退出。 对一个给定的程序,我们可以把它划分为一系列基本块,在各个基本块范围内进行的优化称为局部优化。 划分基本块的关键问题是准确定义入口和出口语句。 划分四元式程序为基本块的算法: (1) 从四元式序列确定满足以下条件的入口语句: ① 四元式序列的第一个语句; ② 能由条件转移语句或无条件转移语句转移到的语句; ③ 紧跟在条件转移语句后面的语句。 (2) 确定满足以下条件的出口语句: ① 下一个入口语句的前一条语句; ② 转移语句(包括转移语句自身); ③ 停语句(包括停语句自身)。 注 意: 某条语句可能既是入口语句,又是出口语句。 若能构成基本块,那么入口语句数目 = 出口语句数目 凡未被纳入某一基本块的语句,都是程序中控制流程无法到达的语句,因而也是不会被执行到的语句,我们可以把它们删除。 例:考察求最大公因子的三地址代码程序 (1) ?read X (2) ?read Y (3) ?R=X % Y (4) ?if R=0 goto(8) (5) ?X=Y (6) ?Y=R (7)? goto(3) (8) ?write Y (9) ?halt 入口语句:(1)、(3)、(5)、(8) 出口语句:(2)、(4)、(7)、(9) 四个基本块: (1)(2)、(3)(4)、(5)(6)(7)、(8)(9) 5.1.2 基本块的DAG表示 DAG(Directed Acyclic Graph):一种有向非循环图,用来对基本块进行优化。 基本块的DAG:一种其结点上带有标记或附加信息的DAG。 叶结点----独特的标识符(名字,常数)标记,下标0 内部结点----运算符号标记 各个结点----附加标识符标记 利用DAG进行基本块优化的基本思想: 首先按基本块内的四元式序列顺序将所有的四元式构造成一个DAG; 然后按构造结点的次序将DAG还原成四元式序列。 由于在构造DAG的同时已作了局部优化,所以最后所得到的是优化过的四元式序列。 我们规定:用大写字母(如A、B等)表示四元式中的变量名(或常数);用函数Node(A)表示A在DAG中的相应结点,其值可为n或者未定义,并用n表示DAG中的一个结点值。 这样,每个基本块仅含0、1、2型四元式的DAG构造算法如下(对基本块的每一个四元式依次执行该算法): (1) 创建标记; (2) 合并已知量; (3) 检查公共子表达式,删除多余运算; (4) 删除无用赋值。 5.1.3 利用DAG进行基本块的优化处理 利用DAG进行基本块优化处理的基本思想:按照构造DAG结点的顺序,对每一个结点写出其相应的四元式表示。 我们根据例5.1DAG结点的构造顺序,按照图5–2(10)写出四元式序列G?如下: (1) ?T0=3.14 (2) ?T1=6.28 (3) ?T3=6.28 (4) ?T2=R+r (5) ?T4=T2 (6) ?A=6.28*T2 (7) ?T5=A (8) ?T6= R?r (9) ?B=A*T6 注意:后继结点都写好后,就可以写出该结点的四元式了。 将G和原基本块G相比,有哪些优化? (1) G中四元式(2)和(6)都是已知量和已知量的运算,G已合并; (2) G中四元式(5)是一种无用赋值,G已将它删除; (3) G中四元式(3)和(7)的R+r是公共子表达式,?G只对它们计算了一次,即删除了多余的R+r运算。 因此,G是对G实现上述三种优化的结果。 通过观察图5–2(10)中的所有叶结点和内部结点以及其上的附加标识符,还可以得出以下结论: (1) DAG中相应叶结点上标记的标识符:在基本块外被定值并在基本块内被引用的所有标识符; (2) DAG各结点上的附加标识符:在基本块内被定值且该值能在基本块后面被引用的标识符。 这些结论可以引导优
您可能关注的文档
- 5-肺炎中山医概要.ppt
- 5-第三章病毒1基本性状概要.ppt
- 5-运船舶的技术性能(二)概要.ppt
- 5-土源性线虫病病原学及防治概要.ppt
- 5.1.1降低化学反应活化能的酶概要.ppt
- 5.1.3 同位角、内错角、同旁内角概要.ppt
- 5-鱼类摄食情况的判断概要.ppt
- 5.1.3同位角内错角同旁内角概要.ppt
- 5.1.3同位角内错角同旁内角-三环六步概要.ppt
- 5.10小麦的实训指导书概要.doc
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
最近下载
- 2024年山东化工职业学院单招英语考试模拟试题及答案解析.docx VIP
- 农业生态学课件.pptx VIP
- 七十岁驾照换证三力测试题库(含答案).docx VIP
- 投入产出分析(第三版)第二章 全国实物型投入产出模型.ppt VIP
- 2025河南省中考物理试题含答案解析.pdf
- 全季酒店施工方.doc VIP
- 2026年湖南铁道职业技术学院单招职业技能测试题库推荐.docx VIP
- 2026广东新高考地理得分技巧精讲试卷(附答案解析).docx VIP
- 2023年山东化工职业学院单招英语考试模拟试题及答案解析.docx VIP
- 华中农业大学《大学语文》课件-第1-2章中国古代文学之先秦文学.ppt VIP
原创力文档

文档评论(0)