WCET 感知的源代码级优化技术解析
1. 背景知识
1.1 反向注释数据
反向注释为低级和高级中间表示(IR)之间的任意信息交换提供了一个通用框架。主要是将由 aiT 确定的最坏情况执行时间(WCET)数据和最坏情况执行计数(WCEC)导入到 ICD - C IR 中,同时也会交换其他信息,具体如下:
- 每个基本块、函数、编译单元和整个程序的 WCET。
- 一个块是否位于最坏情况执行路径(WCEP)上的信息。
- 块和控制流图(CFG)边的执行可行性。
- 每个块和 CFG 边的 WCEC。
- 函数之间的最坏情况调用频率。
- 在 WCET 分析期间每个块遇到的指令缓存未命中次数。
- 低级块的字节大小。
- 在寄存器分配期间每个块生成的溢出代码指令数量。
由于低级中间表示(LLIR)中缺少对上下文的支持,上述与 WCET 相关的数据表示的是所有执行上下文的累积值。反向注释期间的数据转换会遍历 LLIR CFG,并利用映射函数 backanb : blow → bhigh 为每个 ICD - C 块 bhigh 分配在给定 LLIR 块 blow 上注释的信息。对于 n:1 的块关系,n 个 LLIR 块的数据按照以下规则合并(CFG 边的合并类似):
- 累积 WCET 信息: WCET(bhigh) = ∑(k = 1 to n) WCET(bk_low)
- 分配最大 WCEC: WCEC(bhigh) = max{WCEC(bk_
超级会员免费看
订阅专栏 解锁全文
3

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



