基于WCET感知的源代码级优化之过程克隆技术
1. 过程克隆概述
当调用者使用一些常量参数调用被调用者时,可以通过从参数列表中移除常量参数并将其导入被调用者本身来克隆被调用者。标准文献中提到,克隆的好处主要有两点:
- 过程克隆可能会实现进一步的优化,例如克隆内的常量传播和常量折叠。
- 由于常量参数不再在调用者和被调用者之间传递,因此减少了调用开销。
过程克隆生成的代码对高精度WCET分析更有利,主要体现在解决了两个主要问题:
- 明确指定循环边界。
- 消除不可行路径。
这两个方面都有助于提高WCET估计的准确性,因为它们能更准确地描述程序行为。
2. 相关工作
此前,过程克隆主要在平均情况执行时间(ACET)和代码大小的背景下进行研究:
- Cooper利用克隆实现编译器优化,在克隆函数之前,编译器会评估特定函数克隆后进一步优化的潜力,仅对有潜力的函数进行转换,从而提高平均性能并使代码大小增加最小化。
- [SES00]的作者观察到Fortran 90子程序调用在需要复制参数时会导致严重的性能损失,因此提出了一种利用数据流分析的克隆算法,以识别可盈利的过程克隆并控制代码增长。
- [SD03]探讨了过程克隆对VLIW和EPIC机器指令级并行性的影响,通过合并函数克隆生成多个独立的指令流以实现并行执行。
- [Vah99]在功能分区的背景下研究过程克隆,创建可分配给不同处理器的函数克隆,以减少通信开销并提高性能。
- [FMP+07]在反馈导向优化领域中,克隆最耗时的函数并应用不同的标准优化,然后在不同目标架构上使用不同输入运行程序,评估原始函
超级会员免费看
订阅专栏 解锁全文
2

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



