- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
源程序中间代码constdef优化后的代码a=1
本章内容 概述 常量表达式优化 公共表达式优化 循环不变式外提 概述 优化的目标 提高程序执行效率 优化的要求 有效 平衡 优化的对象 深层循环和下标变量地址的计算 概述(续) 优化的种类 常表达式优化(合并常数项) 公共表达式优化(消除重复操作) 循环不变表达式外提 削减运算强度 优化方法: 全局优化 局部优化:源代码、中间代码、目标代码 常表达式优化 基本块与程序流图 常表达式局部优化方法 基本块和程序流图 基本块:单入口单出口的程序段。 程序流图:以基本块为结点的有向图,有向边表示 程序执行的流程。 中间代码基本块的划分: 初始代码为第一个基本块的入口 遇转移性中间代码时,结束当前基本块,下一条代码作为新基本块的入口 遇标号性代码结束当前基本块,代码本身作为新基本块的入口。 遇(ASSIG,A,n,X)时,如果X为引用型形参时结束当前块,并作为该块的出口。 基本块划分的例子 y = 1 ; if(AB)x = 0; else y = 0 ; x = x + 1 ; y = y – 1 ; while (x + y 0) x = x - 1 ; z = 0 ; 基本块划分的例子 B1:(ASSIG ,1,_,y) B2:(LABEL,L) (AND, A, B, t) (THEN,t,_,_) B3:(ASSIG,0,_,x) (ELSE,_,_,_) B4:(ASSIG,0,_,y) (ENDIF,_,_,_) B5:(ADDI,x,1,t1) (ASSIG,t1,_,x) (SUBI,y,1,t2) (ASSIG,t2,_,y) B1 B2 B4 B3 B5 B6 B8 B7 程序流图例 B6:(WHILE,_,_,) (ADDI,x,y,t3) (GT,t3,0,t4) (DO,t4,_,_) B7:(SUBI,x,1,t5) (ASSIG,t5,_,x) (ENDWHILE,_,_,_) B8:(ASSIG,0,_,z) 常表达式局部优化 常表达式的定义 任何时候都取固定常数值的表达式 处理思想: 针对每个基本块,如果一个多元式的两个分量的值已知,则计算其值,并删掉相应的中间代码。 常表达式优化原理 常量定值表ConsDef:(Var,Val)。 基本块入口置ConstDef为空; 对当前多元式的分量利用ConstDef表进行值代换; 新多元式形如(?,A,B,t):如果A和B是常数,则计算A?B的值v,并将(t,v)填入ConsDef表。并删除该多元式 形如(ASSIG,A,n,B):如果A是常数,则把(B,A)填入ConsDef表,若已有B项,只需修改其值;否则从ConsDef中删除B的登记项。 常表达式局部优化的例子 源程序 中间代码 ConstDef 优化后的代码 a=1 (ASSIG,1,-,a) (a,1 ) (ASSIG,1,-,a) b=a+1 (ADDI,a,1,t1) (a,1)(t1,2) ( ) (ASSIG,t1,-,b) (a,1)(t1,2)(b,2) (ASSIG,2,-,b) a=x (ASSIG,x,-,a) (t1,2)(b,2) (ASSIG,x,-,a) c=b+5 (ADDI,b,5,t2) (t1,2)(b,2)(t2,7) ( ) (ASSIG,t2,-,c) (t1,2)(b,2)(t2,7)(c,7) (ASSIG,7,c) 基于值编码的公共表达式局部优化 按值等价原理 优化思想: 对一个多元式的分量分别编码,具有相同编码的分量等价。 值编码表ValuNnm 可用表达式代码表UsableExpr 临时变量等价表TempEqua 基于值编码的ECC优化算法 入口处初始化: ValueNum,UsableExp和TempEqua为空。 对当前多元式用TempEqua等价替换,生成NewTuple. 如果NewTuple的A和B分量是未编码的,则编新码; 如果多元式形如dk:(?,A?,B?,tk ) 若存在di?UsableExpr使得dk是di的ECC,则删掉dk,将(tk,ti)填入TempEqua表; 否则,为tk编码;把dk加入到UsableExpr表; 如果多元式形如dk:(ASSIG,A?,-,B? ) 则令B?的值编码等于A?的值编码,填入ValuNum表中;从UsableExpr删除所有含B的中间代码。 基于值编码的优化实例 A=B*C+B*
您可能关注的文档
- reach第一批15项需授权物质候选清单svhc及用途200810.pdf
- 人工石质边坡构树根系抗剪特性研究-水土保持研究.pdf
- 工效学课程教学大纲-机电学院本科生教育-哈尔滨工业大学.doc
- 试验八萃取.doc
- 征税权制度.ppt
- 简易凝胶柱净化-食品安全质量检测学报.pdf
- 煤样的采集.ppt
- 化学品管理程序书-义守大学.pdf
- 接种邻苯二甲酸酯paes降解菌缓解paes对玉米-生态环境学报.pdf
- 算法顺序结构.ppt
- Haier海尔413升风冷变频多门冰箱 BCD-413WGHFD1BSJU1(白)说明书用户手册.pdf
- Siemens西门子工业抽屉式断路器主回路后垂直连接 抽屉式断路器主回路后垂直连接使用手册.pdf
- Samsung三星智能佩戴设备 Galaxy Fit3安全手册.pdf
- Samsung三星滚筒洗衣机 AI神 黑钻热泵洗烘旗舰 WD18DB8995BZSC使用手册.pdf
- Sakura樱花消毒柜 保洁柜消毒柜 SCQ-130D6用户手册说明书.pdf
- Hifiman头领科技ARYA UNVEILED说明书用户手册.pdf
- Siemens西门子工业抽屉式主回路连接前置端子 支撑件 抽屉式主回路连接前置端子 支撑件使用手册.pdf
- Siemens西门子工业中性线的外部电流传感器 中性线的外部电流传感器使用手册.pdf
- Siemens西门子工业电子脱扣单元 电子脱扣单元使用手册.pdf
- Razer雷蛇Playstation 专用雷蛇战锤狂鲨极速版 RZ12-038203 用户指南 (简体中文)说明书用户手册.pdf
最近下载
- 图纸版次及产品标识管理规定.doc VIP
- (完整)康复医学词汇.pdf
- GB/T 2424.5-2021环境试验 第3部分:支持文件及导则 温度试验箱性能确认.pdf
- 高速公路施工调查报告.pdf VIP
- 商务星球版八年级地理上册:第四章-中国的经济与文化复习课件(共49张).ppt VIP
- 图书管理系统-需求规格说明书格式.doc VIP
- 上海初中物理14个重要实验+重难点标注(解析版).pdf VIP
- 本科毕业论文设计 -薪酬管理研究.doc VIP
- 人教版小学二年级上册音乐全册教案.pdf VIP
- GB∕T 2424.1-2015 环境试验 第3部分:支持文件及导则 低温和高温试验.pdf
文档评论(0)