Chapter-13_updated 北航本科编译原理课件 张莉.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:39 大小:491KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Chapter-13_updated 北航本科编译原理课件 张莉.ppt

Chapter-13_updated北航本科编译原理课件张莉.ppt

预览

免费试读已结束,剩余 29 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第十三章代码优化针对SPEC2000中lucas和mcf施加不同级别的编译优化后的运行结果(编译器AlphaCompiler)下面的优化合理吗?优化方法的分类1:优化方法的分类2:赋值语句:a=b*(-c)+b*(-c)13.1.2消除局部公共子表达式建立DAG图,例1t1:=-ct2:=b*t1c:=t1t3:=-ct4:=b*t3t5:=c+t4a:=t513.1.3数组、指针及函数调用13.1.4从DAG图重新导出中间代码t1=a+bt2=c+dt3=e–t2t4=t1–t3算法13.2从DAG导出中间代码的启发式算法13.1.5窥孔优化13.2全局优化13.2.1数据流分析数据流分析方程数据流方程求解过程中的3个关键因素到达定义(reachingdefinition)分析gen[B1]={d1,d2,d3}kill[B1]={d5,d6,d7,d8}基本块B的到达定义数据流方程例:算法13.3基本块的到达定义数据流分析例:到达定义数据流分析13.2.2活跃变量分析与到达定义分析的区别def和use算法13.4基本块的活跃变量数据流分析for每个基本块Bdoin[B]=;while集合in发生变化dofor每个基本块Bdobeginout[B]=B的所有后继Sin[S]in[B]=use[B](out[B]–def[B])end例从活跃变量到冲突图13.2.3定义-使用链、网和冲突图活跃变量冲突的不同定义Define-use链网BACKUP例