- 1、本文档共117页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LiveOut集合的计算 2、如果这组新的LiveOut集合上一轮迭代相比有所变化,则重新执行上述计算,直到所有节点的LiveOut集合都不再变化为止。 第一次迭代 LiveOut集合的计算 第二次迭代 本轮对LiveOut(B1)的计算得到了两个活跃变量b和c。其中,b是在B1的直接后继基本块B3中引用的,而c则是在B1的间接后继基本块B4中引用的(B1?B2?B4)。 考察其他LiveOut集合时可以发现,这些集合均没有发生变化。 LiveOut集合的计算 第三次迭代 重复上述计算可以看出,所有LiveOut集合都不再发生变化,因此结束活跃变量计算 LiveOut集合的计算 活跃变量的应用 结合上面的例子,对活跃变量的应用进行简要说明。 首先,根据对活跃变量集合的计算得到了以下的LiveOut集合组: LiveOut(B1) = { c, b } LiveOut(B2) = { c } LiveOut(B3) = { e } LiveOut(B4) = { e } LiveOut(B5) = ? 确定变量x是没有初始化的变量 无用变量或无用代码删除的安全性 7.5.3 过程间数据流分析 在进行数据流分析时除了需要考虑子程序内部变量、表达式的引用和定值情况之外,还需要考虑全局变量、参数传递(如C语言的指针做参数)等情况引起的子程序间变量依赖关系。 限于篇幅,本书将不再对过程间数据流分析技术进行更多介绍。 7.6 循环优化 循环虽然在程序中占有的比例并不高,但在执行时却有很高的频度。 如果能够对循环中的代码进行优化,那么即使只优化了一条指令,其效果却相当于优化了n条指令(如果循环执行n次)。 7.6.1 循环的识别 源程序和抽象语法树中可以容易得获得循环的相关信息。但有些信息只有在生成中间代码后才能方便获得。如: 只有当生成四元式或指令时,才能得到关于下标变量地址计算的详细信息 问题: 四元式序列中无法直接看出循环的构成。 因此,必须从中识别出循环。 循环语句的特点 第一,所有循环都有一个唯一的入口点。 第二,存在一个从循环内部某条语句返回循环头(入口点)的一条转跳指令(在控制流程图中,体现为一条从循环体内指向入口节点的有向边)。 第三,循环体内的所有语句都可不?经过本循环的入口节点而到达循环的末尾(末尾语句返回循环首部)。反之,如果一个语句没有通过该循环的唯一入口节点进入循环,且最终到达循环尾部,则该节点是循环体内部的节点。 识别循环的算法 首先,识别所有符合循环入口点特征的节点集合。具体方法是通过计算控制流程图中的必经节点集实现的。 其次,根据节点之间的相互依赖关系和从被控制节点指向其必经节点的有向边(称为回边),识别循环的尾部。 最后,根据循环首部和尾部的定义,以及循环体内语句必然能不经过循环首部而到达循环尾部这一事实,计算循环体所包含的所有节点。 必经节点,控制节点树 假设控制流程图中有节点n,则节点m是n的必经节点的充要条件是:如果从控制流程图的首节点到n的每条路径都包含m,则m是n的必经节点,也可称m控制或支配了n(记为m DOM n)。特别注意,任意节点k是自己的必经节点。 控制节点树 根据这一定义,我们不难给出控制?流程图中每个节点的必经节点集合。如果将这些必经节点集合以相互依赖的关系表示出来,也可得到一棵控制节点树(必经节点树,也称哈斯树)。 循环查找的例子 DOM(1) = {1} DOM(2) = {1,2} DOM(3) = {1,2,3} DOM(4) = {1,2,4} DOM(5) = {1,2,4.5} DOM(6) = {1,2,4,6} DOM(7) = {1,2,4,7} DOM(8) = {1,2,4,6,8} DOM(9) = {1,2,4,6,8,9} DOM(10) = {1,2,4,6,8,9,10} DOM(11) = {1,2,4,7,11} DOM(12) = {1,2,4,12} 识别循环出口点的方法 循环出口点可用“回边”的概念来确定 如果节点n是节点m的必经节点,且存在一条从m指向n的有向边,则称该m,n的边是回边。 上例中符合回边定义的有以下有向边:3?2,4?2,9?8和10?5。 识别循环体的方法 遍历控制流程图,找到所有不经过入口节点就能到达出口节点的语句。这些语句属于同一个循环。 上面例子中的几个循环: 对于回边3?2,不存在不经过2就能到达3的节点。因此节点2、3构成一个循环。 对于回边4?2,节点2、4构成一个循环。 对于回边9?8,节点8、9构成一个循环。 对于回边10?5,节点8、9可以不经过5就到达10。因此5、8、9、10构成一个循环。 7.6.2 循环优化技术 循环不变量的计算 归纳变量的消除
您可能关注的文档
- 边做边学——Photoshop+corelDRAW综合实训教程 教学课件 作者 江新顺 07.ppt
- 边做边学——Photoshop+corelDRAW综合实训教程 教学课件 作者 江新顺 08.ppt
- 边做边学——Photoshop+corelDRAW综合实训教程 教学课件 作者 江新顺 09.ppt
- 边做边学——Photoshop+corelDRAW综合实训教程 教学课件 作者 江新顺 10.ppt
- 边做边学——Photoshop+corelDRAW综合实训教程 教学课件 作者 江新顺 11.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 01.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 02.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 03.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 04.ppt
- 边做边学——Photoshop+Illustrator综合实训教程 教学课件 作者 马丹 姚磊磊 05.ppt
- CNAS-CL63-2017 司法鉴定-法庭科学机构能力认可准则在声像资料鉴定领域的应用说明.docx
- 12J7-3 河北《内装修-吊顶》.docx
- 12N2 河北省12系列建筑标准设计图集 燃气(油)供热锅炉房工程.docx
- 内蒙古 12S8 排水工程 DBJ03-22-2014.docx
- 山西省 12S10 12系列建筑标准设计 管道支架、吊架.docx
- 16J601-木门窗标准图集.docx
- 12J8 河北省12系列《 楼梯》.docx
- CNAS-GL37 2015 校准和测量能力(CMC)表示指南.docx
- CNAS-RL02-2016 能力验证规则.docx
- 津02SJ601 PVC塑料门窗标准.docx
最近下载
- 2024年广州市高三二模(普通高中毕业班综合测试(二)数学试卷(含官方答案及逐题解析).pdf
- 武汉市2025届高中毕业生四月调研考试(四调)数学试卷(含答案详解).pdf
- (毕业论文)果树采摘机器人的发展现状及运动学分析.doc VIP
- 【高中语文】双新背景下的语文教学设计+85.pptx VIP
- 雨课堂学堂在线《兵棋(中国人民武装警察部队警官学院)》学堂云单元测试考核答案.pdf VIP
- 11.3 一元一次不等式组(教学设计)七年级数学下册(人教版2024).docx
- 年产1万吨一氯甲烷的工艺流程设计.doc
- 医疗器械质量管理制度-全套规章制度.docx VIP
- 木材质量v验收标准.doc
- 直肠癌(外科学课件).ppt VIP
文档评论(0)