实时系统编译优化技术解析
1. 优化探索实验结果
1.1 优化效果分析
在优化序列中,一些不常出现的优化操作,可认为其效益较低,这些操作包括:在虚拟 LLIR 上应用的指令调度、循环折叠、生命周期范围拆分和循环去索引。而且,对于特定目标,并没有明确最适合的优化操作,许多优化操作对估计的最坏情况执行时间(WCET)和平均情况执行时间(ACET)的影响相当。
1.2 针对 ⟨WCET, 代码大小⟩ 的帕累托最优优化序列分析
| 优化操作 | 特点 |
|---|---|
| 函数内联 | 在以代码大小为导向的序列中经常出现。虽然通常认为该优化会导致代码膨胀,但如果内联并进一步优化代码中仅调用一次的函数,也可以减小代码大小。 |
| 小函数过程克隆 | 对于以代码大小为导向的解决方案,许多序列以小函数(限制为 20 个表达式)的过程克隆开始。小函数克隆对代码大小影响可忽略不计,但可能显著改善估计的 WCET,之后部分克隆函数还可内联,可能导致代码大小减小。 |
| 循环展开 | 与以 WCET 为导向的序列不同,以代码大小为导向的优化策略中不包含循环展开,因此循环展开可能会使代码大小增加。 |
| 循环去开关 | 在以代码大小为导向的序列中很少出现,该操作会增加代码大小,若代 |
超级会员免费看
订阅专栏 解锁全文
176万+

被折叠的 条评论
为什么被折叠?



