编译原理-第8章.pptVIP

  • 10
  • 0
  • 约7.65千字
  • 约 35页
  • 2017-10-15 发布于湖北
  • 举报
编译原理-第8章

第八章 代码优化 为了让编译程序能够生成效率高的目标代码,应对中间代码进行优化 注意:优化≠最佳化 要求:相对合理性。应考虑空间和时间上的取舍,及二者的平衡。 本章将介绍语法制导翻译阶段的代码优化、线性窥孔(peep-hole)优化、基于结构信息的优化三种类型。 假定 优化对象是四元式序列的中间代码 8.1 语法制导翻译阶段的优化 在进行语法制导翻译的过程中,通过对原文法的改造,可以生成效率较高的代码. 例如,对于一些标准函数(strcpy(s1,s2), sin(x)等)的调用,可按一般函数调用来处理: fc_call → fc_nm ( )| fc_nm(P_list) P_list → P_list , param |param 也可将这类特殊函数直接作为表达式处理,从而省去参数传递、现场保护、转子及返回指令、恢复现场等操作: expr → STRCPY ( expr , expr ) 这类优化一般适用于用于特殊目的的专用语言. 8.2 线性窥孔优化 考查C程序段 int i; …; i=5; ++i; return i+1; 由于这样的优化涉及到多个语句,在语法制导翻译阶段不可能进行,而窥孔优化可完成此工作. 窥孔优化的基本思想 窥孔优化的基本思想是,考察编译器所生成的中间代码(或目标代码)中相邻指令,将其中的某些组合替换为效率更高的指令组. 线性窥孔优化的

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档