欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    编译程序的组织 (23).ppt

    • 资源ID:84313392       资源大小:533.50KB        全文页数:6页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    编译程序的组织 (23).ppt

    9.1 代码优化l代码优化目的:生成效率更高的目标代码。l注意:优化优化最佳化最佳化 l要求:相对合理性相对合理性。考虑空间和时间上的取舍及二者的平衡。l优化的要求:必须是等价变换(保持功能);为优化的努力必须是值得的(获得感);有时优化后的代码的效率反而会下降(副作用)。l机器相关性机器相关优化:寄存器优化,多处理器优化,特殊指令优化等。机器无关优化:中间代码优化。l注意:本文重点关注中间代码的优化方法。优化的种类l基于中间代码优化的步骤:控制流分析:分析出程序的循环结构(优化关键);数据流分析:数据流信息的收集,主要是变量值的获得和使用情况的数据流信息;代码变换:根据上面的分析,对中间代码进行等价变换。l优化范围:局部优化:如基于单个基本块范围内的线性窥孔优化等,包括常量合并优化,公共子表达式删除,计算强度削弱和无用代码删除等;全局优化:主要是基于结构信息的优化,包括针对循环的系列优化方法,如循环不变优化,归纳变量删除,计算强度削减等。线性窥孔优化l分类分类:局部优化方法。l基基本本思思想想:考察编译器所生成代码中相邻指令,将其中的某些组合替换为效率更高的指令组。l特点特点:优化的对象可以是中间代码,也可以是目标代码;每次处理的是一组相邻的指令,仿佛将其暴露在一观察窗口(窥孔)中;对优化对象进行线性扫描。l优化项目优化项目:强度削弱、常数合并和常数传播、无用代码删除等。强度削弱l强强度削弱度削弱:用执行效率较高的等价地替换原操作.l例如例如:乘(或除)以2的n次方的运算可用左(或右)移n位实现(X*8等价于X3);类似地,以2的n次方为模的求模运算可用按位与实现(X%8=X&7).另外,用加法代替乘法也可提高效率.如x*=3可替换为:t=x;x+=t;x+=t;联合使用移位和加法,可以削弱乘法的强度:x*=9可替换为 t=x;t=3;x+=t;即x*9=x*8+x=(x3)+x。l优化与具体的运算对象的值有关,有时会得不偿失,应权衡各方面的因素。l对于非算术运算也可削弱强度,如尽量多使用寄存器,少访问内存(或外存)等。常数合并和常数传播l常数合并:指在编译时就将源程序中常数表达式之值先行算出,不必生成计算该表达式的代码。l例如:a+2*3可翻译成a+6。表达式a+1+3在翻译阶段生成的代码为:T1=a;T1+=1;T1+=3;由于对T1的两次定值未被引用,可将其修改为;T1=a;T1+=4;l常数传播:指在程序运行时某段程序中的一些变量之值保持不变,故在此范围内对该变量的引用可替换对其值的直接引用,传播将一直延续到对其重新定值。l例如:a=3;/*未对a重新定值*/;b=a;可改为:a=3;b=3;无用变量与无用代码的删除例如:t0=a;t0+=5;x=t0;t0+=1;t0=b;l无用变量:指在变量的最后一次引用,到对该变量再置初值期间的变量。l相对性:变量是否无用依赖于所处的环境,是相对概念;l例如:右边例子中的T0,在T0+=1被被赋赋值值后后,直直到到再再次次做做T0=bT0=b操操作作,在在这这期期间间,从从未未被被引引用用的的变变量量,其其赋赋值值操操作作是是无无用用赋赋值值,这种变量被称为无用变量。l无用代码:指控制永远到达不了的代码。如if(0)if(0)S S,花括号内为S,是无用代码。

    注意事项

    本文(编译程序的组织 (23).ppt)为本站会员(刘静)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开