C66 多核DSP 代码优化基本介绍之消除循环体间的相关性

2019-07-22 16:52发布

本帖最后由 Sode 于 2016-5-10 21:29 编辑

看一下汇编文件中的软件流水信息。瓶颈在哪里?要找出瓶颈,必须理解编译器是如何计算循环指令周期数的下限的。此下限是“循环体间的相关性限制”和“资源限制”的最大者。循环体间的相关性的区间值是以汇编指令间的执行顺序为基础的。例如,必须完成两个 load 指令后才能继续执行 add 指令。资源限制则是基于硬件资源,例如需要的每种指定类型的功能单元的数量。实际上,有以下两种资源限制:已划分和未划分。在本例中,这两者相同。

            在本例中,已划分资源限制为 2。即使可以不按顺序执行汇编指令,执行循环体中的所有指令也至少需要2个周期。但是,循环体间的相关性限制为 7。
  1. ;*      Loop Carried Dependency Bound(^) : 0
复制代码
需进一步注意,每 2 个周期会启动一个新的循环。因此,在稳定状态下,每 2 个周期(而不是每 7 个周期)就会生成一个新结果。
;*         ii = 2  Schedule found with 4 iterations in parallel.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
FCCdsp
1楼-- · 2019-07-22 20:43
消除循环体中,如果其值为0,那么是不是还有优化的空间呢,根据是什么?将其转化为线性汇编如何?

一周热门 更多>