- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 8 章 代码优化 8.2.1 常见的局部优化方法 8.2.1 常见的局部优化方法(续1) 8.2.3 基于DAG的局部优化方法 8.2.3 基于DAG的局部优化方法 基于DAG的局部优化练习 对以下基本块 T1=2 T2=A-B T3=A+B T4=T2*T3 T5=3*T1 T6=A+B L=A-B T7=T6*L T8=T5*4 M=T8+T7 L=M (1) 构造优化的 DAG 图; (2) 假设只有 L 在基本块出口之后还被引用,请写出优化后的四元式序列。 基于DAG的局部优化练习答案 * * 优化处理是指产生更高效的目标代码所做的工作。 8.1 优化的分类 8.2 局部优化 8.2.1 常见的局部优化方法 8.2.2 基本块及其划分 8.2.3 基于DAG的局部优化方法 【内容提要】 目标代码所占空间和执行速度 8.1 优化的分类 (1) 与机器无关的优化(在源代码或中间代码级上进行); 又分三种: ① 全局优化 — 针对整个源程序。 ② 局部优化 — 除全局优化外皆属此类。 ③ 循环优化 — 对循环语句实施的优化。 (2) 与机器有关的优化(目标代码级上的优化): 包括:① 寄存器分配的优化; ② 消除无用代码。 ※ 根据代码优化是否涉及具体的计算机来划分: 1. 常值表达式节省(常数合并) 如:a=5+3;b=a+1; ……. 5+3,a+1 皆为常值表达式! 则可优化为 a=8;b=9; 2. 公共子表达式节省(删除多余运算) 3. 删除无用赋值 如:a=b+c;x=d-e;y=b;a=e-h/5; 则 a=b+c 为无用赋值! 则可优化为 x=d-e;y=b;a=e-h/5; a 未有应用!! 若:a=5+3;…;a=x…; a=a+1; 注 则 a+1不是常值表达式! 如:a=b*d+1;e=b*d-2; …… b*d是公共表达式! 则可优化为 t=b*d; a=t+1; e=t-2; 若:b=b*d+1; e=b*d-2; 则 b*d不是公共表达式! 注 4. 不变表达式外提(循环优化之一) 即把循环不变运算,提到循环外。 5. 消减运算强度(循环优化之二) 即把强度大的运算换算成强度小的运算。 如:i=1; while(i100){x=(k+a)/i;…;i++;} 则可优化为 i=1;t=k+a; while (i100){x=t/i;…;i++;} 循环不变表达式 如:i=1; while ( i100 ){ t=4*i; b=a↑2;…; i++; } 则可优化为 i=1;t=0; while (i100){t=t+4; b=a*a;…;i++;} t,i 线性 关系 8.2.2 基本块及其划分 ※ 局部优化算法是以基本块为单位进行的,基本块也是目标代码生成的基本单位。 【定义】基本块是程序中一段顺序执行的语句序列,其中只有一个入口和一个出口。 1.确定基本块的入口语句,它们是: (1) 程序的第一个语句或转向语句转移到的语句; (2) 紧跟在转向语句后面的语句。 2.确定基本块的出口语句,它们是: (1) 下一个入口语句的前导语句; (2) 转向语句(包括转向语句本身); (3) 停语句(包括停语句本身); 基本块划分算法: 【例8.1】设有源程序片段如下,划分出基本块; ※以基本块为结点的程序流图,如下所示: 对应的四元式序列 x=1; a:r=x*5; if(x10){x=x+1;goto a;} r=0; (1) x =1 (4) r = t1 (5) t2=x10 (6) if(t2) _ (7) t3 = x+1 (8) x = t3 (9) gt a (10) ie _ (2) lb a (3) t1=x*5 (11) r = 0 x=1 (2)lb a (3)t1=x*5 (4)r=t1 (5)t2=x10 (6) if(t2)_ (7)t3=x+1 (8)x=t3 (9) gt a (11) r=0 (10) ie _ B1 B2 B3 B4 四个基本块 8.2.2 基本块及其划分(续1) ※ 基本块内四元式的局部优化过程示例 【例8.2】 设 有语句片断: B=5; A=2*3.14/(R+r); B=2*3.14/(R+r)*(R-r); A=2*3.14/(R+
您可能关注的文档
- 维普数据库的使用.ppt
- 综合客运枢纽规划建设关键问题.ppt
- 综合布线系统的施工与安装.ppt
- 综合性学习倡导低碳生活(2单元).ppt
- 综合性学习:黄河——母亲河.ppt
- 综合探究做好就业和自主创业的准备课件(1).ppt
- 继续教育鉴定课件.ppt
- 综合探究五__郑和下西洋与哥伦布航海的比较.ppt
- 综合性语文学习—马的世界.ppt
- 综合性学习黄河母亲河.ppt
- 2022年大学生思想汇报3000字模板.pdf
- 2023中药栽培理论知识考核试题及答案.pdf
- 2023年河南省平顶山市学校消防安全培训试题及答案.pdf
- 南京师范大学附属中学2023-2024学年高一上学期第一次月考英语试题(原卷版).pdf
- 2023年四川省自贡市富顺县琵琶镇理策村社区工作人员(综合考点共100题)模拟测试练习题含答案.pdf
- 高校“中国梦”大众传播内容层次分析研究.pdf
- 2022-2023年执业药师之药事管理与法规基础试题库和答案要点.pdf
- 医药市场行业调研报告汇总 参考(精选9篇).pdf
- 产品销售营销策划方案4篇.pdf
- 2023年北京市大兴区事业单位考试试题真题及答案.pdf
最近下载
- 中国机动车驾驶证英文版模板.pdf
- 浙江中宁硅业有限公司10kt_a高纯一氧化二氮精馏提纯项目环境影响报告表.docx VIP
- 1 《伐檀》公开课一等奖创新教学设计-【中职专用】高一语文(高教版2023-2024基础模块上册).docx VIP
- GB8814-2017型材标准.docx
- 低代码开发师(中级)考试题库.docx VIP
- 埃斯顿Helm吨位仪监视系统—RLG系列说明.pdf
- 人教版(B版2019课标)高中数学选择性必修一2.7.1抛物线的标准方程 学案.docx
- 多维品质管理工具在医院精细化管理中的应用.docx VIP
- 汽车修理工安全操作规程.pptx VIP
- 新高考一轮复习数学全套课件.pptx VIP
文档评论(0)