14、循环展开与不变路径加速优化技术解析

循环展开与不变路径加速优化技术解析

1. 循环展开技术

循环展开是一种重要的优化技术,它能有效减少程序的最坏情况执行时间(WCET)。在一些基准测试中,如 edge_detect fir2dim ,通过完全展开某些循环,WCET 最多可降低 39.5%。展开循环后生成的直线代码能通过后续优化进一步改进,同时消除所有跳转到循环入口的操作。

不同基准测试中,循环展开带来性能提升的关键因素有所不同。例如,在 countnegative 基准测试中,减少循环开销是关键;而在其他基准测试中,展开循环后释放的优化潜力则起到了重要作用。

1.1 平均情况执行时间(ACET)

为了展示程序内存启发式方法的实际应用,模拟了一个程序内存受限的系统环境,这在执行多个任务且共享同一内存的嵌入式系统中很常见。以 MRTC 基准测试 ndes 为例,当采用 WCET 感知的循环展开并结合 O3 优化时,随着程序内存的增加,基准测试的 WCET 减少幅度也随之增大。这是因为更多的程序内存允许更激进地展开循环。

同时,该优化主要针对 WCET 最小化。对于所有内存大小,WCET 的减少幅度都高于 ACET。这是因为 WCET 感知的循环展开会优先展开那些能最大程度减少 WCET 的循环。由于程序内存受限,并非所有循环都能展开,因此对 WCET 减少最有利的转换循环不一定对 ACET 减少最有利。

1.2 代码大小

循环展开会对代码大小产生影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值