16、优化编译器的高效符号分析与递归程序的过程间形状分析

优化编译器的高效符号分析与递归程序的过程间形状分析

1. 优化编译器的高效符号分析

在优化编译器的工作中,对于循环的处理至关重要。例如,假设 i 是一个归纳变量,有一种方法能够自动识别 (i*i - i)/2 为归纳表达式。这个特性可以用于广义循环强度削减,通过用一个新的归纳变量替换 (i*i - i)/2 ,从而优化循环。不过,符号差分方法在广义循环强度削减中检测可优化子表达式时成本较高,因为需要为每个子表达式构建符号差分表。

在过程间分析方面,由于空间限制,相关算法在最初的呈现中未包含过程间分析。虽然可以使用子程序内联,但这可能导致代码规模急剧增大。另一种方式是将子程序调用视为跳转到子程序代码并返回,同时在子程序边界进行一些工作,以确保归纳变量的正确传递。

下面通过对MDG和TRFD代码段应用IVS算法来展示其效果:
- MDG代码段
- 首先识别 ikl ji 的GIV更新,将它们从内循环中提升出来。
- 接着分析中间循环,进行 ji = jiz ikl = ik + m 的前向替换。此时, ikl ik 一起被识别为中间循环的归纳变量,而 ji 相对于 k 是循环不变的。
- 提升这些变量赋值后,经过 ik

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值