ZHCUAQ1F july 2015 – april 2023
advice #30009: If you know that this loop will always execute at a
multiple of <2> and at least <2> times, try adding
"#pragma MUST_ITERATE(2, ,2)" just before the loop.
C6000 架构被划分为几乎对称的两部分。在 asm 文件的软件流水线信息中显示的资源细目是在编译器已经将指令划分到 A 侧或 B 侧之后计算的。如果资源不平衡(即,一侧的某些资源比另一侧的资源使用得更多),则软件流水线会受到资源的限制,循环无法有效调度。如果编译器具有关于循环次数的信息,则可以展开循环以平衡资源使用,并获得更好的流水线。可以使用“MUST_ITERATE”pragma 向编译器提供循环计数的信息。
要查看更多有关使用 MUST_ITERATE pragma 的信息,请参阅节 7.9.22