编译原理(第四版)( (5).pptVIP

  • 101
  • 0
  • 约3.44万字
  • 约 177页
  • 2022-04-07 发布于陕西
  • 举报
图5–28 强度削弱后的程序流图   6.删除归纳变量   由图5–28可知,B2中每循环一次,i值加1,T2与i之间保持着T2=4*i的线性关系;而B3中每循环一次,j值减1,T4与j之间保持着T4=4*j的线性关系。在对T2=4*i和T4=4*j进行了强度削弱后,i和j仅出现在条件句if i≥j goto B6中,其余地方不再被引用。因此,我们可以变换归纳变量而把此条件句变换为:if T2≥T4 goto B6。经过这种变换,我们又可以将无用赋值i=i+1和j=j–1删去。删除归纳变量后的程序流图如图5–29所示。   通过上述各种优化,最终得到图5–29所示的优化结果。比较图5–25和图5–29可知:B2和B3中的四元式从4条减为2条,而且一条是由乘法变为加法;B5中的四元式由9条变为3条,B6中的四元式由8条变为2条。以上这些优化对循环执行来说,效果是非常明显的。虽然B1的四元式由4条变为现在的B1和B2共6条,但因其仅被执行一次,所以影响甚微。 图5–29 删除归纳变量后的程序流图 习 题 五   5.1 完成以下选择题:   (1) 优化可生成 的目标代码。   A. 运行时间较短 B. 占用存储空间较小   C. 运行时间短但占用内存空间大   D. 运

文档评论(0)

1亿VIP精品文档

相关文档